草庐IT

thread_siblings_list

全部标签

c++ - 在 win32::WaitForSingleObject 期间 Windows 上的 Boost.Thread 断言/崩溃

我的代码中有一个很少发生的问题会触发断言,涉及Boost.Thread库。我无法使用独立示例重现此问题,而且我也不知道是什么原因造成的,因此很难提供示例案例。我希望任何熟悉boost.thread内部结构的人都能提供帮助。这是我知道的:问题发生在boost::lock_guard(或unique_lock和普通非递归互斥锁的变体)被声明。它发生在Boost.Asio的处理函数中。堆栈上是执行io_service::run的线程,一堆调用Asio回调函数的胶水,然后是我的回调函数(由async_write调用触发)。该函数的第一行是lock_guard的声明这是导致问题的原因。this我

.net - Threading.Timer的麻烦

我正在使用Threading.Timer,例如:newSystem.Threading.Timer(newSystem.Threading.TimerCallback(x=>file.Write(DateTime.Now.ToString())),null,0,600000);例如,它从11:00:00开始,然后我进入文件:11:00:0011:10:0011:20:00...12:10:0012:19:5912:29:59为什么?从某个时间开始做这样的事情?我试过其他定时器,像Timers.Timer,和winformsTimer,情况一样。这让我很沮丧。编辑:在线程中发布的带有准确

windows - pidgin 的 "buddy list"窗口的行为名称是什么?

我注意到windows上pidgin的“好友列表”窗口有如下特点:如果将窗口拖到离桌面右上角不远的地方,会出现以下情况:边框的外观略有变化:之前:之后:停靠在桌面右侧最有趣的是:它保留了桌面上的空间。所有其他最大化的窗口都减少了pigin窗口的宽度。所有其他窗口的行为就好像桌面的宽度比pidgin窗口的宽度短问:最后一点实现的功能名称是什么? 最佳答案 您创建了桌面在使用SHAppBarMessage()api函数计算工作区域时观察到的自定义工具栏。查看MSDNLibrary页面以获取文档,它也非常适合通过谷歌搜索来查找示例代码。

windows - 修改 InstallShield X(版本 10.5)的 exe list

我使用InstallShieldX(版本10.5)创建了InstallScript项目当我从WindowsSDKv7.1A运行mt.exe时具有以下list:MySetup.exe.manifest使用以下命令:#wrongfile!MySetup.exewillbetruncated!mt.exe-manifestMySetup.exe.manifest-updateresource:MySetup.exe;#1安装程序(MySetup.exe)从大约80MB被截断为大约110KB。如何将管理员权限提升list正确地嵌入到InstallShieldX生成的安装程序中?

c++ - 读取 REG_RESOURCE_LIST 内存值 - 不正确的值

我正在尝试使用以下代码读取Hardware\ResourceMap\SystemResources\PhysicalMemory中的物理内存值:#include#include#include#include#includeusingnamespacestd;intmain(){HKEYhKey=NULL;LPCTSTRpszSubKey=L"Hardware\\ResourceMap\\SystemResources\\PhysicalMemory";LPCTSTRpszValueName=L".Translated";if(!RegOpenKey(HKEY_LOCAL_MACHIN

windows - 批处理文件: List Directory & File names to individual variables and display as selection menu

我在许多不同的Windows机器上使用RDP,有时必须将RDP合并为一个,然后从那里rdp转移到另一个。我想知道是否可以创建一个批处理文件,该文件可以读取设置路径中所有目录的名称,然后将它们显示为带编号的变量(如菜单)。输入选择后,它将对所选目录中的所有.rdp文件执行相同的操作。下面是一个示例,说明如何为每个文件手动进行硬编码...但是我需要一些可以适应于将新的rdp文件拖放到目录中的方法,而不必每次都在批处理文件中手动添加它,如数字网站/台数和名称可能会定期更改。:siteECHOLocationListECHO.ECHO1NSWECHO2QLDECHO.SET/psite=Ent

windows - 在没有 "Cross Threading"的情况下,我可以从 BackgroundWorker 访问什么?

我意识到我无法从BackgroundWorker的DoWork事件处理程序访问表单控件。(如果我尝试这样做,我会得到一个异常,正如预期的那样)。但是,我可以访问存在于我的表单上的其他(自定义)对象吗?例如,我创建了一个“设置”类并在我的表单中实例化了它,我似乎能够读取和写入它的属性。这只是运气好吗?如果我有一个静态类怎么办?我可以安全地访问它吗? 最佳答案 @英格拉姆:您已经了解了它的要点-CrossThreadCalls只是MS放入.NETFramework中的一个很好的功能,用于防止“笨蛋”类型的并行编程错误。它可以被覆盖,正如

c++ - Boost 1.66.0 : could not find boost libraries :boost_system, boost_filesystem、boost_thread、boost_date_time

我的配置是:操作系统:Windows10x64boost:1.66.0CMake:3.10VisualStudio:2017我正在以这种方式编译boost:bootstrap.\b2--build-dir=buildtoolset=msvcaddress-model=64--build-type=completestage运行CMake时出现此错误:couldnotfindboostlibraries:boost_systemboost_filesystemboost_threadboost_localeboost_date_time我搜索这些库,它们位于stage文件夹中。我尝试了B

C++/Windows : HeapAlloc() for contention-free per-thread heaps

我有一个使用boost::thread的多线程应用程序。出于性能原因,我希望每个线程都有一个独立的堆。我可以使用HeapCreate()创建一个堆,但不清楚如何将其连接到CRT库,以便new和malloc在创建的堆上分配内存。如何做到这一点? 最佳答案 Howcanthisbedone?如果不完全替换整个内存分配器就无法完成。例如可伸缩内存管理器Hoard正是这样做的。但是替换内存分配器并不适合胆小的人。如果您想通过HeapCreate使用每线程堆,并且合理包含您的分配/释放代码,那么您可以简单地调用HeapAlloc和HeapFr

windows - mingw std::thread 与 Windows API

我开始使用C++11std::thread(mingw4.8)到目前为止一切顺利。我遇到了重叠I/O的情况,其中sleepEx用于将线程置于可警告的等待状态。这工作得很好,直到必须使用QueueUserAPC,它返回一个“无效句柄错误”。经过一番查找,发现std::thread使用的是Windows下的pthread库。有没有什么方法可以使用WindowsAPI调用,它需要一个带有std::thread的线程句柄?或者我是否需要坚持使用Windows线程来处理重叠I/O? 最佳答案 为了解决您的问题,MinGW-w64winpthr