c++ - 在线程内使用循环时出现 "Unhandled exception"错误

标签 c++ boost multithreading

我遇到了这个错误

Program.exe 中 0x0049b946 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000090。

错误指向这一行:

        // thread.hpp ln 56
        void run()
        {
            f(); // here <<
        }

尝试运行这段代码时:

void frameFunc()
{
    for(;;)
    {
         //..........do something. it is too long to paste. (calculations)
    }
}

int main()
{
   boost::thread framethread(frameFunc);
   framethread.join();
   //........
}

当我删除 frameFunc 中的循环时,错误就会消失。

任何形式的帮助将不胜感激:)

最佳答案

您显示的代码看起来有效。我认为问题出在未显示的代码中。

关于c++ - 在线程内使用循环时出现 "Unhandled exception"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509164/

相关文章:

c++ - 如何真正删除 vector

c++ - 如何在 Qt 中获取文件系统操作的上下文菜单?

c++ - 即使使用 -lpthread 选项,Sqlite3 库也会出现线程错误

c++ - 是否可以在使用 const 的所有地方使用 volatile?

ios - 苹果新款3.3.1

java - 多线程对象数组列表

c++ - 如何将 boost::serialization 与嵌套结构和最少的代码更改一起使用?

c++ - boost::variant 与包含值的比较

java - 如何更改 ExecutorService 中的线程名称?

java - 如何保持第二个进程直到完成 Android 中的第一个进程?