C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #1 1、线程能否从其内部挂起?并从其内部某需要的地方将挂起的线程再次运行?代码。
X xeen Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #2 有啊,比如定时函数Sleep,和wait函数 waitforsingleobject
C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #3 比如,在一个线程里,触发了某条件时需要调另一个窗体以修改某条件, 这时需要先挂起该线程,等待修改条件完毕关闭该子窗体返回时再继续 执行原线程。 我需要代码。谢谢!
F fengyhf Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #4 if WaitForSingleObject(hSemaphore,30) = WAIT_TIMEOUT then begin //暂停30毫秒,继续允许。 end;
C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #5 TO fengyhf: 如果我的窗体需要的时间每个使用者都不等呢?你这种方式 对于时间基本固定的情况比较适合吧? 用Resume和Suspend来控制合适吗?在调用窗体时用Suspend来 挂起,在窗体执行返回时用Resume来继续执行。如果可行的话, 这样可能会方便一些。 可以吗?
TO fengyhf: 如果我的窗体需要的时间每个使用者都不等呢?你这种方式 对于时间基本固定的情况比较适合吧? 用Resume和Suspend来控制合适吗?在调用窗体时用Suspend来 挂起,在窗体执行返回时用Resume来继续执行。如果可行的话, 这样可能会方便一些。 可以吗?
C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #7 TO nicai_wgl: 谢谢你关注。 Suspend挂起后,Resume是直接从挂起处开始继续执行吗? 就象类似断点的意思?
C chen_liang Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-12 #8 Suspend,Resume 函数就是挂起和恢复,
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-13 #9 Suspend挂起后,Resume是直接从挂起处开始继续执行 <<-- 是的,如果你线程里 有和其他线程共享资源的话,在挂起前最好释放掉。
C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-13 #10 TO Suspend: 谢谢你。 你说“在挂起前最好先释放掉与其它线程共享的资源”,那Resume时 依然从Suspend处开始执行?释放的资源在Resume前先找回? 另:因为窗体本身是线程,所以,在线程里调用另外的窗体时,其执行实质上 是并行的吧?
TO Suspend: 谢谢你。 你说“在挂起前最好先释放掉与其它线程共享的资源”,那Resume时 依然从Suspend处开始执行?释放的资源在Resume前先找回? 另:因为窗体本身是线程,所以,在线程里调用另外的窗体时,其执行实质上 是并行的吧?
B bravel Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-13 #11 用resume和suspend本身在线程内时候不合适的 应该在其他进程中来控制
C carrie4002 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-13 #12 TO bravel: 谢谢你。我对线程本身不太了几苊。你能多说点吗?
L linuxping Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-04 #13 挂起自身...呵呵`~~还真没这么做过... 帮顶....
火 火山 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-05 #14 用Suspend,Resume挂起的话,你并不知道线程当时停在何处,在访问共享资源时是程序报错的根源。 用事件或内核变量可以更明确自己代码的执行,也很方便调试。
C caidanxu Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #15 suspend , 然后在别的地方通过消息Resume
M moolleychean Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #16 为什么不 d := WaitForSingleObject(YourEvent,1000); case d of WAIT_OBJECT_0: ;//do something WAIT_TIMEOUT: ;//do something end; 然后在“等待修改条件完毕关闭该子窗体”时setevent呢。
为什么不 d := WaitForSingleObject(YourEvent,1000); case d of WAIT_OBJECT_0: ;//do something WAIT_TIMEOUT: ;//do something end; 然后在“等待修改条件完毕关闭该子窗体”时setevent呢。