草庐IT

QT多线程

全部标签

c++ - 如何隐藏在 Qt 应用程序中打开的 Windows 终端?

首先,有类似的问题,但我认为这是一个不同的问题,因为Windows终端仅在我调用system()时出现,而不是在应用程序启动时出现。我有一个带有gui的程序,它是用C++和Qt编写的,并使用MinGW编译器在qmake中使用.pro文件构建。操作系统是虚拟机中的Windows10。我在Ubuntu中编写了代码,它按预期工作(根本看不到操作系统终端),但现在我正在Windows中测试它。我的问题是,每当我在我的代码中调用system()或类似代码来执行另一个程序(假设在后台)时,Windows都会在我的gui前面打开一个cmd终端。我的程序中有很多这样的调用,因此在程序运行时有很多这样的

c++ - 修复Qt Window大小和位置问题

我按如下方式保存和恢复QMainWindow的大小和位置:window->resize(savedSize);window->move(savedPos);window->show();voidcloseEvent(QCloseEvent*e){savedSize=window->size();savedPos=window->pos();}问题是窗口位置由应用程序栏(Windows最小化和最大化按钮所在的栏)更改。因此,当我打开和关闭窗口几次时,窗口会越来越向下移动(每次都恰好是应用程序栏的大小)。我怎样才能准确地恢复到最后的位置?问候, 最佳答案

c++ - 在 wxwidgets 中,如何让一个线程在继续之前等待另一个线程完成?

我有一个系统,我的单例类生成一个线程来进行计算。如果用户在另一个计算仍在运行时请求另一个计算,我希望它拆除现有线程并启动一个新线程。但是,它应该等待第一个线程完全退出才能继续。我已经完成了所有的拆解工作,但我似乎无法确保只有一个线程运行。我的方法是让StartCalculation函数调用mutex->Lock()。析构函数中的线程释放锁。它不工作。我假设如果Lock()无法获得锁,它会旋转并不断尝试重新获取锁,我的假设是否正确?这个Lock()可以从我的主应用程序线程调用吗?任何想法都是有帮助的。也许wxMutex锁是正确的机制。 最佳答案

c# - c# 中正确的队列线程技术?

我想实现一个Windows服务,该服务将丢弃的平面分隔文件捕获到一个文件夹中,以便导入到数据库中。我最初设想的是让FileSystemWatcher查看导入的新文件并创建一个新的导入线程。我想知道我应该如何正确地为此实现一个算法以及我应该使用什么技术?我的方向是否正确? 最佳答案 我为客户开发了这样的产品。该服务正在监控多个文件夹中的新文件,当发现文件时,文件会被读取、处理(在条码打印机上打印)、存档和删除。我们使用了一个“发现者”层,它使用FileSystemWatcher或根据环境进行轮询来发现文件(因为FileSystemWa

c++ - 如何以编程方式获取 Windows 进程的线程数?

我想通过C/C++计算当前Windows进程的native线程数。我看到有一个relatedquestion有.NET答案,但我不能使用该解决方案。我怀疑可能有一个通过PdhOpenQuery/PdhCollectQueryData的解决方案,但我还没有探索那个方向,我希望有一个更简单的方法。更新:我应该说我当前的实现使用CreateToolhelp32Snapshot/Thread32First/Thread32Next,而这正是我要替换的。该实现非常笨拙,在我的进程中每次调用都会导致20,000个页面错误。也许我只是用错了?Update2:最适合我的解决方案是使用我感兴趣的进程的P

c++ - [C++] 对于线程中的 'sleep' 函数,这是否是一种有效的方法?

我想在我的线程类中实现一个sleep()函数,但我不知道这是否是一种有效/正确的方法。这是我的整个线程类(thread.h):#includestructRUNNABLE{virtualvoidrun()=0;};classthread{public:voidstart(void*ptr){DWORDthr_id;HANDLEthr_handl=(HANDLE)_beginthreadex(NULL,0,thread_proc,ptr,0,(unsignedint*)&thr_id);}voidsleep(intsleep_time,boolalertable){SleepEx(sle

c++ - 如何在 LGPL 下编译 QT 以在 Windows 上发布?

如何在MINGW上免费编译Qt,同时静态编译mingwdll或MicrosoftC++express,而不是Studio?我必须在本地提供什么dll,在这两个选项上,以及QT和mingw/mc++如何也没有外部依赖性?我正在XPVM上编译我更喜欢mingw,因为linux-windows兼容性,我需要在mingw编译的Qt程序的工作目录中需要哪些dll,才能发布到没有安装Qt或mingw的电脑上。 最佳答案 configure.exe-platformwin32-msvc-opensourceVS-express的主要问题是优秀的v

c++ - 使用 beginthreadex 创建线程时调试应用程序挂起

我在现场遇到一个奇怪的问题,我们的应用程序在启动时挂起。现场拿到custom生成的crashdump,显示主线程被beginthreadexapi卡住了。这是调用堆栈:0:006>kvChildEBP0161ebb8ntdll!KiFastSystemCallRet(FPO:[0,0,0])0161ebbcntdll!ZwWaitForSingleObject+0xc(FPO:[3,0,0])0161ebf8ntdll!RtlpWaitOnCriticalSection+0x1a3(FPO:[2,7,4])0161ec18ntdll!RtlEnterCriticalSection+0x

windows - 服务 OnExecute 失败,生成的线程未执行

首先开始在Delphi7中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在OnExecute事件过程中放置​​相同的蜂鸣声和日志代码,但是当我启动该服务时,我收到一个Windows对话框,提示它已启动然后再次停止。在thiscode中应该有一些明显的东西被我忽略了.你能看看吗?我还将接受指向简单、有效、可下载的服务示例项目的链接……这样我就可以得到每10秒左右调用一次的东西,我将从那里获取它。 最佳答案 接下来是一个基本的服务应用程序。请注意,如果您想使用Service

c# - 更新同一数据库时是否有必要使用多线程概念?

我已经为我们部门的调试竞赛创建了一个Windows应用程序(使用c#.net)。在这个过程中,许多用户使用同一个数据库来选择问题列表并单独更新各自ID中的标记。当他们更新数据库中的标记时是否需要使用线程概念..any1请帮助我..提前致谢... 最佳答案 Mutil-Threading或多线程用于您希望一次执行多个任务或同时执行某些任务的场景。您应该考虑您的场景以及在您的场景中可能使用多个线程。如果你认为有些任务可以分成两个独立的任务并且它们可以并行运行,你可以使用多线程来提高性能。同样,如果您认为某些任务很繁重并且需要花费大量时间