耗时长的操作,放到worker线程中执行。做好worker线程或者线程池的生命周期管理(主要是worker线程不要一直闷头干活,要及时检查UI线程设定的通知标志、通知事件,要不然用户已经点了停止/退出,worker线程还在那里死干或者死等)
worker线程不要直接操作界面控件,而是发消息给UI线程让UI线程来操作控件。
worker线程和UI线程的通信,用自定义消息WM_APP+1、WM_APP+2这样的,通过PostMessage(),一般不需要用锁,因为UI线程的消息队列是OS已经串行化好了。
UI线程不能做耗时操作,否则消息循环被阻塞,那就无法绘制控件状态了,更无法响应鼠标键盘
OnButtonClicked( )这种control event handler是在UI线程中执行的。
--
修改:z16166 FROM 125.35.125.*
FROM 125.35.125.*