A ahjie Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #1 TThread在处理玩一个过程后,就直接关闭了线程。如果用whiledo 的话,则占用cpu. 怎么办??
Q qince Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #2 在 Whiledo 中加入想WaitForSingleObject()的等待语句.
A ahjie Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #3 qince: 我现在的麻烦是,我用dll,dll回调一个我的函数,而程序处理的是从这个函数开始的; 可以让线程里面这样么? 把函数写入线程,由这个函数触发操作,完后等待下一次触发;
Q qince Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #4 其实可以将线程封装成一个类,在线程类中提供如下方法: procedure TMyThrd.Execute; begin while not Terminateddo ....... // 你要完成的事 WaitForSingleObject(FMyEvent, INFINITE) // 等待FMyEvent激活 end; end; 在Execute中写你要处理的事情,处理完了跟一句WaitForSingleObject(Handle, INFINITE) 下次在类中调用的时候只用SetEvent(Handle)就可以了;
其实可以将线程封装成一个类,在线程类中提供如下方法: procedure TMyThrd.Execute; begin while not Terminateddo ....... // 你要完成的事 WaitForSingleObject(FMyEvent, INFINITE) // 等待FMyEvent激活 end; end; 在Execute中写你要处理的事情,处理完了跟一句WaitForSingleObject(Handle, INFINITE) 下次在类中调用的时候只用SetEvent(Handle)就可以了;
A ahjie Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #5 关键我就是不希望再在通过主线程了,是不是没有办法的啊?:(
C chair3 Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-30 #7 While (1=1)do begin .... Sleep(1000); //几乎不吃CPU end