ADOConnect連線到Sql server和執行緒結束的問題 |
缺席
|
hughes0201
一般會員 發表:12 回覆:10 積分:9 註冊:2008-11-04 發送簡訊給我 |
因為我的程式需要不斷的去連接對方的 sql server的主機,
並把資料上傳,故所以基本上如果程式遇到斷線的話,我是以 執行sql語法看有沒有遇到錯誤來判斷是否連線。有的話,再 重新連線。 主執行緒->使用者界面 工作執行緒->負責不斷的檢偵資料庫遠端連線,並且有錯誤時重新連線,沒有時,新增資料。 在建構子已經指定FreeOnTerminate = true; 我在主程式結束時,如果遠端資料庫是斷線狀態, 我的工作執行緒如果正在這時執行 ADOConnect->Connected = true; 而timeout時間是假設是30秒的話。 主程式會等到timeout完才會結束。 可是我已經在主程式 OnClose裡加入工作執行緒->Terminate(); 有沒有辦法可以讓工作執行緒在主程式結束時就結束,而不用等到ADOConnect的timeout結束才結束? 謝謝~~~ |
hughes0201
一般會員 發表:12 回覆:10 積分:9 註冊:2008-11-04 發送簡訊給我 |
找了很久,我的情況和下面這個有點類似
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=21914 就是無法設 connection timeout為更短, 而我是在另一個執行緒裡去測試連線, 在運作時不會影響到主執行緒, 只是在結束時,如遇到timeout,程式會等到timeout完時才結束, 而這段時間很久,約40~50秒~~~ 我試過把 connection->close() 把thread關掉,都不行~~ |
macchen
初階會員 發表:66 回覆:102 積分:33 註冊:2006-07-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |