全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1114
推到 Plurk!
推到 Facebook!

如何跳過等待回應的function

答題得分者是:海星
Just4U
初階會員


發表:38
回覆:56
積分:28
註冊:2002-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-03 18:59:41 IP:211.74.xxx.xxx 未訂閱
各位高手大大, 我使用了一個DLL中的function(沒有source code), 這個function會由USB送資料給外部設備, 然後等待接收外部設備的回應信號, 但是外部設備一直沒有回應信號時將導致程式卡在這一行, 使用TTimer加setjmp/longjmp也沒用, 我想請問的是如何使這個function在5秒沒回應後繼續往下執行? 謝謝!!! : result = function(); <--- 等待接收回應信號,程式卡在這一行 :
海星
高階會員


發表:41
回覆:217
積分:106
註冊:2003-01-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-04 09:44:29 IP:211.20.xxx.xxx 未訂閱
你不能用TTimer..那個一樣會等待程式碼結束,都是單線程。 你必須建立一個子執行緒,用這個子執行緒去做這件事情就不會「卡」。 不過用執行緒要注意的事項很多,例如資源共享問題..要很小心用. 尤其你是去讀取資料..程式碼更要小心,還有要是子執行緒卡了,你要知道如何去結束這個執行緒。 建議你先在本站 KTop 搜尋一下 Thread 的相關文章後,閱讀完再來寫,免得抓 bug 抓到發瘋。
系統時間:2024-05-17 22:12:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!