boost-thread相关内容

Boost Thread-如何确认中断

我有将由find_the_question()函数执行的阻止任务.但是,我不希望执行此功能的线程花费超过10秒的时间.因此,如果要花费10秒钟以上的时间,我想通过清理所有资源来关闭该线程. 我试图为此编写代码,但是如果线程花费的时间超过10秒,我就无法在find_the_question()函数中获得中断.你能告诉我我在做什么错吗? void find_the_question(std ..
发布时间:2020-11-30 04:16:28 C/C++开发

用于连续输入流的PortAudio实时音频处理

我正在使用PortAudio来实现实时音频处理。 我的主要任务是连续从麦克风获取数据,并提供100个样本用于处理(每个FRAME =一次100个样本)到其他处理线程。 这是我的回调,每次连续采集100个样本- static int paStreamCallback(const void * input,void * output, unsigned long samplesP ..

C ++ boost :: thread并自动锁定容器

有没有一种方法可以在访问时自动锁定STL容器,而不必锁定和释放它? 解决方案 当前的C ++标准未提及STL容器的线程安全性。正式而言,STL实现可能是线程安全的,但这是非常不寻常的。如果您的STL实现不是线程安全的,那么您将需要“锁定并释放它”或寻找其他方式来协调访问。 您可能会感兴趣英特尔的线程构建模块,其中包括一些类似于STL容器的线程安全容器。 ..
发布时间:2020-10-08 21:09:46 C/C++开发

Visual Studio 2015 c ++ / CLI Boost ::线程

所有Visual Studio版本都存在此问题,但是在VS 2015中,“老把戏”似乎不再起作用。 这就是我的目的尝试过: 在VS 2013和2015中创建Windows窗体应用程序(自VS 2013起缺少该宏,因此请参见帖子:找不到适用于C ++的Windows窗体应用程序) 将boost headers路径添加到“其他包含目录” add #include“ boost ..
发布时间:2020-09-28 03:37:25 其他开发

C ++ 0x与Boost中的线程析构函数

这几天,我正在阅读pdf 设计MT程序。它解释说,用户必须在C ++中显式调用 std :: thread 类的对象上的 detach()该对象超出范围之前为0x。如果您不调用它,将调用 std :: terminate()并且该应用程序将终止。 我通常在C ++中使用 boost :: thread 进行线程化。如果我错了,请纠正我,但是 boost :: thread 对象在超出范围时会 ..
发布时间:2020-09-27 03:11:23 C/C++开发

asio use_future而不是yield [ec]

我想制作期货容器,每个期货都是任务的无效结果,因此我可以在容器上使用wait_for_any,每个任务都是协程,我目前使用yield_context实现,并且在此协程中有返回ec的初始化函数和结果,其中使用ec分析结果.然后另一个协程称为传递相同yield_context. 我想知道如何进行此设计. 并且,如果我将使用use_future,除非将其抛出,否则除非将其抛出,否则如何将错误代码传递 ..
发布时间:2020-09-22 07:00:43 其他开发

为什么将朋友功能定义为结构的一部分-boost thread_data?

我试图理解一些引起PC-Lint痛苦的增强代码,并以我认为不是合法的C ++但可以在VS2008中编译OK的方式使用friend关键字. 我认为我把朋友理解为声明类和函数的一种方式.我认为在这样的函数定义上使用是不合法的.但是, MSDN页面非常具体: 可以在类声明中定义 Friend函数.这些函数是内联函数,就像成员内联函数一样,它们的行为就像在看到所有类成员之后,在关闭类范围之前(在 ..
发布时间:2020-09-22 06:00:03 C/C++开发

Xcode上的Boost线程组

遇到项目错误后,我试图使用C ++在Xcode(4.2)上运行一个小型测试程序. #include #include int main (int argc, const char * argv[]) { boost::thread_group tg; return 0; } 但是整个程序无法 ..
发布时间:2020-09-22 05:58:39 其他开发

Boost.Thread在1.58中醒来太晚

我有一个需要在特定窗口内工作的应用程序(在这种情况下,所有窗口都相隔30秒).当时间不在窗口内时,将计算到下一个窗口中间的时间,并且线程在该时间段内睡眠(以毫秒为单位,使用boost::this_thread::sleep_for). 使用Boost 1.55,我能够以极高的可靠性击中公差范围内(+/- 100ms)的窗户.迁移到Boost 1.58时,我再也无法访问这些窗口.将boost: ..
发布时间:2020-09-22 05:22:23 C/C++开发

创建带有boost :: bind()的boost :: thread或不创建

有些人似乎使用boost :: bind()函数启动boost :: threads,就像在以下问题的公认答案中一样: 使用Boost线程和非静态类函数 其他人根本不使用它,例如在对该问题最支持的答案中: 启动A的最佳方法线程作为C ++类的成员? 那么,如果存在的话,有什么区别? 解决方案 如下面的代码所示,该代码可以编译并提供预期的输出,对于使用带有自由功能的b ..
发布时间:2020-09-22 05:06:26 C/C++开发

C ++:外部应用程序调用超时

对于我正在使用的c ++程序,我必须调用一个外部应用程序来执行一些操作.我无法修改该应用程序.此操作可能会花费太多时间,因此我必须添加超时.我尝试使用system()和增强线程 int main() { [...] boost::thread t(function1); t.timed_join(boost::posix_time::seconds(10)); [... ..
发布时间:2020-07-22 21:05:40 C/C++开发

使用BOOST进程在单独的线程中读取子进程标准输出

我有一个主程序,该程序使用boost进程库来生成可打印的子进程 Hello World ! 每5秒在其标准输出上 . 我想在子进程的标准输出中读取/监视子进程的标准输出,并在主程序中执行其他操作. 我已经尝试了boost asynchronous IO的示例(我们是否需要在单独的线程中读取childs stdout?有人可以提供一个示例,在该示例中主程序可以同时执行其他操作,而 ..
发布时间:2020-07-18 20:40:56 C/C++开发

每次升压scoped_lock失败

在一个类中,我想在这样的函数上使用互斥锁 void Agent::notify(Packet& packet, Peer peer) { boost::mutex::scoped_lock lock(mutex_); ... } 在编译过程中没有问题.但是,当我执行程序时,boost总是在此行失败: terminate called after throwing a ..
发布时间:2020-07-18 20:39:26 C/C++开发

如何首先获取排他锁,然后降级为共享而不释放锁

Stack Overflow有几个示例,其中一个函数首先首先获得可升级锁,然后然后通过升级获得 独占访问权限.我的理解是,如果不仔细使用,此可能会导致死锁,因为两个线程可能都获得了可升级/共享的锁,然后都试图进行升级,这时两个线程都无法进行,因为另一个线程具有共享锁 我想要的是先获取互斥锁,然后降级为共享锁,而不必完全释放该锁.我找不到这样的例子.有什么想法吗? 解决方案 Boost ..
发布时间:2020-07-18 20:39:24 C/C++开发

Boost登录关闭时违反Boost线程访问

我有一个使用增强日志记录的应用程序。在关闭期间,它在空指针访问上遇到访问冲突。当我单步执行代码到故障点时,似乎boost :: log dll被取消分配,然后boost :: thread代码尝试访问曾经由log dll占用的内存。 我在自己的代码中未使用任何Boost线程,因此假定boost-log dll被boost log使用。 为确保在关闭之前将所有接收器都销毁,我打电话给:c ..
发布时间:2020-06-06 20:13:17 C/C++开发