boost-thread相关内容
我想等待一段时间.我阅读了boost文档,似乎最好将函数 wait_for 与谓词一起使用,如
..
我有将由find_the_question()函数执行的阻止任务.但是,我不希望执行此功能的线程花费超过10秒的时间.因此,如果要花费10秒钟以上的时间,我想通过清理所有资源来关闭该线程. 我试图为此编写代码,但是如果线程花费的时间超过10秒,我就无法在find_the_question()函数中获得中断.你能告诉我我在做什么错吗? void find_the_question(std
..
我正在使用PortAudio来实现实时音频处理。 我的主要任务是连续从麦克风获取数据,并提供100个样本用于处理(每个FRAME =一次100个样本)到其他处理线程。 这是我的回调,每次连续采集100个样本- static int paStreamCallback(const void * input,void * output, unsigned long samplesP
..
有没有一种方法可以在访问时自动锁定STL容器,而不必锁定和释放它? 解决方案 当前的C ++标准未提及STL容器的线程安全性。正式而言,STL实现可能是线程安全的,但这是非常不寻常的。如果您的STL实现不是线程安全的,那么您将需要“锁定并释放它”或寻找其他方式来协调访问。 您可能会感兴趣英特尔的线程构建模块,其中包括一些类似于STL容器的线程安全容器。
..
所有Visual Studio版本都存在此问题,但是在VS 2015中,“老把戏”似乎不再起作用。 这就是我的目的尝试过: 在VS 2013和2015中创建Windows窗体应用程序(自VS 2013起缺少该宏,因此请参见帖子:找不到适用于C ++的Windows窗体应用程序) 将boost headers路径添加到“其他包含目录” add #include“ boost
..
这几天,我正在阅读pdf 设计MT程序。它解释说,用户必须在C ++中显式调用 std :: thread 类的对象上的 detach()该对象超出范围之前为0x。如果您不调用它,将调用 std :: terminate()并且该应用程序将终止。 我通常在C ++中使用 boost :: thread 进行线程化。如果我错了,请纠正我,但是 boost :: thread 对象在超出范围时会
..
我正在尝试使用 我的应用中的一些摘要: 该按钮单击SLOT: void RestWidget::restGetCall() { networkService ntwkSer("www.boost.org","80"); connect(&ntwkSer, SIGNAL(responseReady(std::string)), this, SLOT(showRespon
..
我想制作期货容器,每个期货都是任务的无效结果,因此我可以在容器上使用wait_for_any,每个任务都是协程,我目前使用yield_context实现,并且在此协程中有返回ec的初始化函数和结果,其中使用ec分析结果.然后另一个协程称为传递相同yield_context. 我想知道如何进行此设计. 并且,如果我将使用use_future,除非将其抛出,否则除非将其抛出,否则如何将错误代码传递
..
我试图理解一些引起PC-Lint痛苦的增强代码,并以我认为不是合法的C ++但可以在VS2008中编译OK的方式使用friend关键字. 我认为我把朋友理解为声明类和函数的一种方式.我认为在这样的函数定义上使用是不合法的.但是, MSDN页面非常具体: 可以在类声明中定义 Friend函数.这些函数是内联函数,就像成员内联函数一样,它们的行为就像在看到所有类成员之后,在关闭类范围之前(在
..
遇到项目错误后,我试图使用C ++在Xcode(4.2)上运行一个小型测试程序. #include #include int main (int argc, const char * argv[]) { boost::thread_group tg; return 0; } 但是整个程序无法
..
我有一个需要在特定窗口内工作的应用程序(在这种情况下,所有窗口都相隔30秒).当时间不在窗口内时,将计算到下一个窗口中间的时间,并且线程在该时间段内睡眠(以毫秒为单位,使用boost::this_thread::sleep_for). 使用Boost 1.55,我能够以极高的可靠性击中公差范围内(+/- 100ms)的窗户.迁移到Boost 1.58时,我再也无法访问这些窗口.将boost:
..
有些人似乎使用boost :: bind()函数启动boost :: threads,就像在以下问题的公认答案中一样: 使用Boost线程和非静态类函数 其他人根本不使用它,例如在对该问题最支持的答案中: 启动A的最佳方法线程作为C ++类的成员? 那么,如果存在的话,有什么区别? 解决方案 如下面的代码所示,该代码可以编译并提供预期的输出,对于使用带有自由功能的b
..
有人举了一个如何最轻松地使用boost :: condition :: timed_wait的示例吗? 此处,此处和解决方案 实际上,我终于找到了带有完整示例boost::system_time const timeout=boost::get_system_time()+ boost::posix_time::milliseconds(35000); boost::mutex::scoped_
..
这是Boost库文档中给出的代码. #include #include #include void print(const boost::system::error_code& /*e*/) { std::cout
..
我想终止或终止加速线程. 代码在这里: DWORD WINAPI StartFaceDetector(LPVOID temp) { int j=0; char **argv1; QApplication a(j,argv1);//add some thread here gui::VisualControl w; t=&w; boo
..
对于我正在使用的c ++程序,我必须调用一个外部应用程序来执行一些操作.我无法修改该应用程序.此操作可能会花费太多时间,因此我必须添加超时.我尝试使用system()和增强线程 int main() { [...] boost::thread t(function1); t.timed_join(boost::posix_time::seconds(10)); [...
..
我有一个主程序,该程序使用boost进程库来生成可打印的子进程 Hello World ! 每5秒在其标准输出上 . 我想在子进程的标准输出中读取/监视子进程的标准输出,并在主程序中执行其他操作. 我已经尝试了boost asynchronous IO的示例(我们是否需要在单独的线程中读取childs stdout?有人可以提供一个示例,在该示例中主程序可以同时执行其他操作,而
..
在一个类中,我想在这样的函数上使用互斥锁 void Agent::notify(Packet& packet, Peer peer) { boost::mutex::scoped_lock lock(mutex_); ... } 在编译过程中没有问题.但是,当我执行程序时,boost总是在此行失败: terminate called after throwing a
..
Stack Overflow有几个示例,其中一个函数首先首先获得可升级锁,然后然后通过升级获得 独占访问权限.我的理解是,如果不仔细使用,此可能会导致死锁,因为两个线程可能都获得了可升级/共享的锁,然后都试图进行升级,这时两个线程都无法进行,因为另一个线程具有共享锁 我想要的是先获取互斥锁,然后降级为共享锁,而不必完全释放该锁.我找不到这样的例子.有什么想法吗? 解决方案 Boost
..
我有一个使用增强日志记录的应用程序。在关闭期间,它在空指针访问上遇到访问冲突。当我单步执行代码到故障点时,似乎boost :: log dll被取消分配,然后boost :: thread代码尝试访问曾经由log dll占用的内存。 我在自己的代码中未使用任何Boost线程,因此假定boost-log dll被boost log使用。 为确保在关闭之前将所有接收器都销毁,我打电话给:c
..