一個多線程下載文件的問題,好頭瘙,請高手們幫幫忙:),謝謝:)(100分)

  • 主题发起人 主题发起人 wison
  • 开始时间 开始时间
W

wison

Unregistered / Unconfirmed
GUEST, unregistred user!
我已經寫了一個類是自動下載遠程文件的,下載時會自動show一個Form顯示下載的進度,
這是單線程的,用的時候是這樣:
XXXFrm := TXXX.Create( nil )
try
XXXFrm.ShowModal();{ show後會自動下載文件,直到完畢,自動close form }
finally
XXXFrm.Free();
XXXFrm := nil;
end;

但是現在想把它做成是多線程的,問題來了,因為在TThread.Exceute()中一執行完成
就會退出,而這種多線程的情況下不可以用XXXFrm.ShowModal(),因為showModal直到返回
前,用戶是不可以處理其他操作的,這就不是"多線程運行"了:),那怎麼可以在XXFrm.show()
後,下載未完成前,execute()涵數不返回呢:)?????????,我想了好久,也沒有
想出一個好好的解決方法,請高手們幫幫忙,謝謝:)
 
你是多线程没弄清楚,还是多线程下载没弄清楚?你先试试多线程,没问题再试试多线程下载.
 
挂起线程 Suspand
下载结束再 Resume
 
Agree up,you cando
it like this:
procedure XXX.execute();
begin
...
self.suspend;
end;
 
那你需要用无模式窗体.
 
后退
顶部