Poco中ThreadPool使用出现运行时R6025错误

class WorkRunnable: public Runnable
{
public:
virtual void run()
{
string user = "";
string pass = "";
data_pop(user,pass);
std::cout << "user:" << user << "\tpass:" << pass << std::endl;
}
};
void startWork()
{
InitializeCriticalSection(&critical_data);
ThreadPool pool(5, 5);

while(true)
{

    int start_thread_count = 0;
    int data_count  = data_getcount();

    if(data_count <= 0)
        break;

    int free_threapool = pool.available();

    if(free_threapool < data_count)
        start_thread_count = free_threapool;
    else
        start_thread_count = data_count;

    while(start_thread_count > 0)
    {
        //WorkRunnableEx runex;
        //RunnableAdapter<WorkRunnableEx> runnable(runex, &WorkRunnableEx::Work);
        WorkRunnable runnable;
        pool.start(runnable);
        //Thread::sleep(5);
        start_thread_count--;
    }
}

DeleteCriticalSection(&critical_data);

}


图片说明

单线程没事 ,一用多线程就出现这个错误,百思不得其解,求大神帮忙!

WorkRunnable runnable;

这里是局部变量,一循环就释放了

恩恩
谢谢大兄弟 确实是这问题