在线程内部使用循环时出现“未处理的异常”错误

时间:2010-03-24 15:53:28

标签: c++ boost multithreading

我收到了这个错误

Unhandled exception at 0x0049b946 in Program.exe: 0xC0000005: Access violation reading location 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中删除循环时,错误就会消失。

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

1 个答案:

答案 0 :(得分:2)

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