Thread()
{
while(true)
{
....
if( WaitForSingleObject( g_Event ) )
break;
}
}OnTimer()
{
Func_1();
Func_2();
}Func_1()
{
g_Event.SetEvent();
....
Sleep(**);
}Func_2()
{
....
}程序启动后即启动线程,Timer到时后分别运行Func_1,Func_2。
发现只有Func_1,Func_2全部结束退出OnTimer后,线程才继续运行。
如果把Func_1,Func_2放在其他消息的响应函数中,同样会这样。
因为Func_2中的操作是必须以线程结束为前提的,所以会出错,希望高手指点一下这种问题出现的原因,以及如何解决,多谢!
{
while(true)
{
....
if( WaitForSingleObject( g_Event ) )
break;
}
}OnTimer()
{
Func_1();
Func_2();
}Func_1()
{
g_Event.SetEvent();
....
Sleep(**);
}Func_2()
{
....
}程序启动后即启动线程,Timer到时后分别运行Func_1,Func_2。
发现只有Func_1,Func_2全部结束退出OnTimer后,线程才继续运行。
如果把Func_1,Func_2放在其他消息的响应函数中,同样会这样。
因为Func_2中的操作是必须以线程结束为前提的,所以会出错,希望高手指点一下这种问题出现的原因,以及如何解决,多谢!
Func_2() 等待线程结束(用waitforsingleobject)
这两个函数不能放一起,把Func_2()放在你想等待的地方很明显的问题,同志
Func_2的操作就是给另外一个窗口发消息用来显示线程中接收到的数据,然后释放资源,由于县城没有按照预想的退出,所以出了问题。很奇怪,我自己写了一个简短的测试程序,没有问题,线程在Func2之前退出了。不知道这个工程里面出了什么问题,明天看代码。