草庐IT

QT多线程

全部标签

windows - 从没有超线程的计算机中获取内核总数

这是一个艰难的过程。我需要使用命令从我的服务器输出确切的内核数。我的测试:X:在具有4个处理器(插槽)和2个内核的Windows服务器上,每个处理器都没有HT。Y:在具有2个处理器(插槽)和6个内核的Windows服务器上,每个内核都具有HT。GetSystemInfo只得到安装的处理器数量:4个用于X,2个用于Y。||X:8cores|Y:12cores|||4x2(noHT)|2x6(HT)||----------------|-------------|-------------||Desiredoutput|8|12||GetSystemInfo|4|2|%NUMBER_OF_

linux - 将 Qt 程序从 Linux 部署到 Windows

我正在Linux上开发一个Qt程序,我也想在Windows上发布它。Windows的编译和静态链接与MXE(安装了qtbase)配合得很好,但我想动态链接我的程序。动态链接有效,程序在Wine下运行,但是当我将EXE和DLL复制到Windows时,程序出现错误:“此应用程序无法启动,因为它无法在中找到或加载Qt平台插件“windows”“”。”在Windows上,windeployqt将应用程序运行所需的所有内容整齐地放在一个文件夹中。有没有办法让这个工具(或类似工具)在Linux上运行? 最佳答案 您缺少可执行文件所需的几个文件。

c++ - 如何将我的 Qt 应用程序主窗口始终放在 Windows 任务栏上方?

我有一个Qt应用程序,它保留在其他窗口之上。主窗口是无框透明的。为了将它放在其他窗口之上,我遵循了以下过程。SetForegroundWindow((HWND)winId());Qt::WindowFlagsflags=this->windowFlags();flags=flags&~Qt::WindowMinimizeButtonHint;this->setWindowFlags(flags|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);ui.setupUi(this);此代码片段将我的Qt主窗口置于所有窗口之上以及任务栏之上。问

c++ - QT 5.7 MSVC 2015 静态构建不工作

我在Windows上使用32位和64位QT5.7MSVC2015静态版本时遇到问题。这些是我运行的命令和我得到的输出(也用32位测试):C:\Users\Josh>setPATH=C:\Qt\static\Qt5.7.0MSVC2015_Static_x64\bin;%PATH%C:\Users\Josh>cd"\Users\Josh\MozySync\ReplicatorNew\ReplicatorNew"C:\Users\Josh\MozySync\ReplicatorNew\ReplicatorNew>qmakeReplicatorNew.proCouldnotfindqmake

c++ - PPL - 如何配置 native 线程数?

我正在尝试使用其Scheduler类来管理PPL中的native线程数,这是我的代码:for(inti=0;iRegisterShutdownEvent(hShutdownEvent);pScheduler->Attach();////////////////////////////////////////////////////////////////////////////for(inti=0;iRelease();WaitForSingleObject(hShutdownEvent,INFINITE);CloseHandle(hShutdownEvent);}SchedulerP

c++ - 创建自己的线程的 native 共享库可以(应该吗?)支持退出 'without warning' 的使用进程?

我开发的产品通常构建为共享库。使用应用程序将加载它,创建一些句柄,使用它们,并最终释放所有句柄并卸载库。库会创建一些后台线程,这些线程通常会在释放句柄时停止。现在的问题是,一些消费应用程序的行为不是很好,并且在某些情况下(取消、错误等)无法释放句柄。最终,我们库中的静态析构函数会运行,并在它们尝试与(现已死亡的)后台线程交互时崩溃。一种可能性是不让任何全局对象具有析构函数,这样可以避免在静态析构期间运行库中的任何代码。这可能会解决进程退出时的崩溃,但它会在应用程序简单地卸载库而不释放句柄(而不是退出)的情况​​下引入泄漏和崩溃,因为我们无法确保后台线程实际上是在他们正在运行的代码被卸载

c++ - KMDF 的多线程 DeviceIOControl

在回答我的问题之前,我将回顾一下我目前正在使用的东西,以便您对我已经做过/尝试过的事情有一个很好的了解。我有一个多线程用户模式​​Windows桌面应用程序,它向KMDF驱动程序发出DeviceIOControl调用(纯软件,无硬件)。有5个单独的线程,它们都不断地对驱动程序进行相同的自定义IOCTL调用。此请求包括:PsLookupProcessByProcessId以获取要从中读取内存的进程。MmCopyVirtualMemory将请求的内存复制到提供的缓冲区中。ObDereferenceObject减少引用计数。驱动程序目前正在连续执行此操作,而我的用户模式应用程序中的主要瓶颈是

c++ - Qt中如何实现OpenSSL?

尝试在我的Qt项目中使用OpenSSL,这是我的环境:操作系统:Win732位Qt:QtCreator4.2.1社区Qt套件:Qt_5_8_0_MSVC2015_32bit2Openssl:Win32OpenSSLv1.1.0e,下载形式thissite我正在尝试include然而,在我的代码中,当我添加#include时在我的main.cpp和构建中,QtCreator显示以下错误:D:\QtProjects\dialogs\findfiles\main.cpp:50:error:C1083:'openssl/evp.h':Nosuchfileordirectory我已经按照这个问题

c# - 我如何知道分配给线程的实际时间片?

我知道实际时间片是可变的,具体取决于操作系统和处理器等多种因素。但是有没有一种方法可以让线程在它拥有CPU的时间内计算分配给它的时间片? 最佳答案 有趣的问题;但我认为:可能不是。为了从线程内部测量这个,线程需要知道两个事件:线程启动/恢复;获取CPU时间;并开始运行线程被“挂起”,并停止执行从那里开始:即使你找到了一种机制来告诉线程“你刚刚被恢复”——你怎么能告诉线程什么时候被挂起呢?换句话说:您需要两个钩子(Hook),它们不仅以某种方式通知线程“您已恢复”;还有关于“你很快就会被停职”;这样线程本身就可以进行簿记。鉴于您的评论

windows - CryptGetProvParam 和多线程程序

CryptGetProvParam的MSDN文档说此函数不得在多线程程序的线程上使用。我希望有一些条件可以这样使用它。有没有人在这方面有任何经验并可以告诉我解决方法?谢谢。 最佳答案 一些MSDN文档是由实习生编写的,质量并不总是很好。他们显然在谈论与同时从多个线程调用此函数相关的问题,而不仅仅是进程中有多个线程。如果您查看一些查询值以及API的设计方式,应该很容易发现不能使用多线程的查询。任何使用CRYPT_FIRST/NEXT(PP_*ENUM*)的东西都必须依赖一些内部状态来记住“它在哪里”。这些查询在其描述中也有线程警告。这