請問該如何當主程式關閉時,thread也同時強制關閉呢 |
尚未結案
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
程式碼大約如下,但是就是卡在idhttp這一行,有時候連線網頁也連很久。而我關閉主程式時,很明顯他還在跑,所以當我再度開啟程式時。他正更新資料庫,而出現"當非同步執行時,不可執行操作"的錯誤。
我想要無論如何,主程式被關閉時,thread也同時都關閉,請問該如何來做呢。 [code delphi] //主程式 the_thread.OnTerminate := ThreadDone; //thread執行序程式 constructor TGetThread.Create(urlPosition : string; dbname:string; fundio:string); begin if Terminated then FreeAndNil(self); FreeOnTerminate := True; inherited Create(False); end; procedure TGetThread.Execute; begin Download; end; procedure TGetThread.Download; var ms : TMemoryStream; buf, s : string; time_td : integer; idh : Tidhttp; begin ms := TMemoryStream.Create; idh := Tidhttp.create(nil); idh.HandleRedirects:= true; idh.RedirectMaximum := 1; idh.ConnectTimeout := 10000; idh.ReadTimeout := 10000; idh.OnWorkBegin := IdHTTP1WorkBegin; idh.onWork :=IdHTTP1Work; Form1.IdAntiFreeze1.OnlyWhenIdle := False; idh.Get(exchange_name,ms); .... //更新資料庫 end; [/code] 補充一下看是不是改ADOConection的方式也可以 我ADOConnection的IsolationLevel=ilReadCommitted 所有的ADOConnection及ADOQuery都放在DataModule上面 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |