H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #1 我程序启动的时候一开始线程的Execute 方法在不断执行, 我在里面设断点就一直运行, 但是过了一会这个方法就不执行了, 设断点都不从里面走了 奇怪啊,
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #3 但是我在线程启动以后, 从来没有执行过 停止线程的方法啊, 为什么Execute 方法就不执行了呢?
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #5 to 无业游民, 线程一旦启动起来,Execute 方法是一直执行的, 期望得到真正的解答
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #7 to 张无忌, 我知道是我自己程序的问题, 但是我并没有调用停止线程的方法, 我想知道还可能有其他的途径导致我线程的停止吗?
无 无业游民 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #8 不,你错了! 线程启动会执行Execute但是执行结束后线成就会终止!所以你在Execute中要使用循环 While not Terminateddo .....;
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #9 to 无业游民, 这你说得很对, 我的Execute 方法是这样的, while not Terminateddo begin 1. Synchronize(Step); if SleepTime > 0 then Sleep(SleepTime); end; 但是线程一开始开运行, 后来我在1的地方设置断点,发现根本就不从这里走了, 为什么呢? 能帮我解释一下吗?
to 无业游民, 这你说得很对, 我的Execute 方法是这样的, while not Terminateddo begin 1. Synchronize(Step); if SleepTime > 0 then Sleep(SleepTime); end; 但是线程一开始开运行, 后来我在1的地方设置断点,发现根本就不从这里走了, 为什么呢? 能帮我解释一下吗?
无 无业游民 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #10 但从这一点代码来说,你说的问题绝对不会发生!一定是其他位置出了问题? 或者该线程不是退出了而是挂起了!查一查线程安全问题!
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #11 线程安全问题怎么查呢? while not Terminateddo begin 1. Synchronize(Step); if SleepTime > 0 then Sleep(SleepTime); end; 在这后面我加了一句代码 showMessage('thread terminated!'); 如果线程循环退出了应该会显示的, 但是我的程序这个语句却没有执行, 线程也不处理Step里面的语句了, 我想应该是挂起了吧, 我该怎么处理呢, 如果解决挂起的问题呢? 谢谢你的回复,
线程安全问题怎么查呢? while not Terminateddo begin 1. Synchronize(Step); if SleepTime > 0 then Sleep(SleepTime); end; 在这后面我加了一句代码 showMessage('thread terminated!'); 如果线程循环退出了应该会显示的, 但是我的程序这个语句却没有执行, 线程也不处理Step里面的语句了, 我想应该是挂起了吧, 我该怎么处理呢, 如果解决挂起的问题呢? 谢谢你的回复,
无 无业游民 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #12 这就不是三言两语就能解释清楚的了!你还是找本书看看吧!
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #14 我设置的SleepTime 是5, 我想Sleeptime 会带来不可预的程序特性, 但是5millisecond 以后为什么不自动 resume 呢?
H hellotao Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-24 #17 我想知道有没有什么机制保证 让线程不会一直挂起,导致程序运行不下去的情况 还有, Synchronize方法 到底和使用 mutux, crticalsection 等有什么区别,