用CreateThread函数创建线程
hthread:=CreateThread(nil,0,@MyThreadfunc,nil,0,ThreadID); MyThreadfunc有一些窗体界面的操作、更新,为什么有时可以,有时却会整个应用程序都退出来?
特别是在实际运行环境经常会异常结束应用程序,怎么办?如何捕捉异常?在开发环境却从未有异常结束应用程序的情况,郁闷啊!
hthread:=CreateThread(nil,0,@MyThreadfunc,nil,0,ThreadID); MyThreadfunc有一些窗体界面的操作、更新,为什么有时可以,有时却会整个应用程序都退出来?
特别是在实际运行环境经常会异常结束应用程序,怎么办?如何捕捉异常?在开发环境却从未有异常结束应用程序的情况,郁闷啊!
这里有一个“线程分析”写得很具体的文章,你可参考一下
in a method called using Synchronize, for example, Synchronize(UpdateCaption); and UpdateCaption could look like, procedure TMyThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
可参考一下我的那两篇文章:
http://blog.csdn.net/linzhengqun
至于是什么异常,从你的表达无法判断,
而且,你用 CreateThread, 而不是用delphi的 tThtread, 也更加不可控
用TThread可以很方便很到,用Syn...函数在主线程中调用一方法,然后在这个方法中生成一个事件让主线程界面去响应即可。
MyThreadfunc通过发消息来更新介面
建议用TThread类
这种方法这2天不止一次的看到了,为什么不用TThread类呢?