草庐IT

libboost_thread-vc

全部标签

c++ - 摆脱我的 Release 应用程序中的 msvcr120.dll/msvcp120.dll 依赖项 (VC++ 2013)

我知道有一些关于如何将msvcr120.dll/msvcp120.dll包含到您的项目中的问题。但我想放弃这种依赖。我在VisualStudio2013中以Release版本编译程序。我不依赖于任何VS特定命令(#pragma等)或预编译header等。我想将它编译成一个单一版本的.exe并提供给用户而不要求他安装VC++RedistributesforVS(用户将在Windows7、Windows8,也许是WindowsXP)。这可能吗?如果是,怎么办? 最佳答案 您可以通过设置/MT标志将运行时静态链接到您的项目。您可以在Vis

c++ - 从 std::thread 获取返回码?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++:Simplereturnvaluefromstd::thread?有没有办法从std::thread获取返回码?我有一个返回整数的函数,我希望能够在线程完成执行时从该函数获取返回代码。

c++ - 在析构函数中加入一个 boost::thread 实例

我看到一个问题,即调用boost的线程->加入析构函数会导致死锁。我不明白为什么,而且我不太热衷于在项目中保留正常工作的代码(我不明白为什么会这样)。类声明(为简洁起见,我删除了try/catch的run()方法:根据boost线程文档,使用或不使用它的结果应该相同):classB{public:voidoperator()(){run();}voidrun();voidshutdown();~B();B();boost::thread*thr;boolshutdown_requested;};voidB::shutdown(){shutdown_requested=true;if(t

c++ - boost::thread 在终止时会自动从 boost::thread_group 中删除吗?

(Thisquestion,虽然相似,但并没有真正回答我的问题。)我有problemswithmyown"threadgroup"implementation,并且没有更接近于解决甚至识别问题,我正在研究仅使用boost::thread_grp。现在,从什么documentationIcanfindonthesubject1,我一直相信线程对象——无论它们实际工作的持续时间如何——一直存在并且是线程组的一部分,直到线程组被销毁。但是,粗略的测试似乎表明boost::thread_group::size()会随着线程的工作和终止而自行减少。这意味着线程对象本身也正在为我清理。这是真的吗?

c++ - std::thread constructor 传递指针和传递ref有区别吗?

创建调用成员函数的线程时,传递当前类的指针和传递引用有区别吗?从下面的示例中,方法1的行为是否与方法2相同?有什么区别吗?classMyClass{public:MyClass(){};~MyClass(){};voidmemberFunction1(){//method1std::threadtheThread(&MyClass::memberFunction2,this,argumentToMemberFunction2)//method2std::threadtheThread(&MyClass::memberFunction2,std::ref(*this),argumentT

具有与 std::thread 不同的线程库的 C++ thread_local

C++11有关键字thread_local。我想知道这个关键字是否只对使用标准库(std::thread)创建的线程按预期工作,或者它保证与其他线程库一起工作,例如WindowsCreateThread函数或Unixpthread。Microsoftdocumentationforvisualstudio指出:Thethreadextendedstorage-classmodifierisusedtodeclareathreadlocalvariable.FortheportableequivalentinC++11andlater,usethethread_localstoragec

c++ - 在 VC++ 2008 项目中使用 VC++ 2010 运行时库

我致力于优化算法,因此性能非常重要。与VS2008相比,该算法在VS2010中编译时大约快8倍。谷歌搜索表明这不是我的错(参见例如https://stackoverflow.com/a/5560184/890355)。问题是最终工程必须在VS2008下搭建。我倾向于的解决方案是在VS2010中将我的算法构建为DLL,然后将其链接到主项目。是否可以在VS2008下将VC++2010运行时库与我的DLL一起使用?如果是这样,最不痛苦的方法是什么?还有其他想法吗?谢谢。 最佳答案 运行时不是问题。没有什么能阻止您将DLL链接到VC2010

c++ - VC2008 整个程序优化失败

我有一个在VS2008下编译的相当大的C++程序(~11mbexe),我很想知道整个程序优化是否会显着影响其性能。但是开启全程序优化和链接时间代码生成导致链接失败如下;1>c:\cpp\Win32\Atlas\tin\TINDoc.Cpp:fatalerrorC1083:Cannotopencompilerintermediatefile:'.\releaseopt\TINDoc.obj':Notenoughspace1>LINK:fatalerrorLNK1257:codegenerationfailed查看任务管理器,我可以看到链接器使用越来越多的内存,直到用完并崩溃。编译器在具有

【STM32&RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)

硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线文章目录前言一、RT-Thread相关接口函数1.获取当前运行的线程2.设置调度器钩子函数二、程序设计1.头文件包含及宏定义2.线程入口函数定义3.main函数设计三、程序测试总结前言本章进一步研究多线程的运行机制。要求实现功能如下:创建2个线程,线程名称分别为LED和BEEP。两个线程的任务是连续5次打印本线程的名字后退出线程(注意:线程不执行控制LED和蜂鸣器动作)。设计本任务的目的是观察LED和BEEP线程在操作系统中是如何同时运行的。一、RT-Thread

c++ - 优雅地停止 std::thread?

我有一个workerstd::thread,我希望它的主循环检查是否有其他线程告诉它停止循环并退出。什么是好的跨平台方式来做到这一点?boost是否为其提供了一些事件对象?仅使用bool是否被认为是线程安全的? 最佳答案 ..这取决于。线程在做什么?它会阻止任何事情、I/O、sleep或其他一些API吗?如果它只是一直在CPU循环和,那么它停止和退出的确切时间并不重要和,那么只需使用一个bool值。在这种情况下,锁定“stopAndExit”bool值毫无意义。如果工作线程在一个循环中没有将其读取为真,而当它应该读取时,由于缺乏原子