執行緒與中斷Timer的問題(關於優先權) |
缺席
|
genkigon
一般會員 發表:2 回覆:0 積分:0 註冊:2007-08-13 發送簡訊給我 |
在下是BCB的新手...大約剛學...但是時間有點點趕,所以決定請教前輩們,看看能否得到解答。
在下用執行緒做接收的動作,將接收的資料顯示。這部份沒問題,單純的接收。 中斷timer部份做資料的傳送,當同時啟動時(執行緒和中斷),原本500ms中斷應該要反應一次的,可是偶而會發生慢或快的反應。 就在下的了解,執行緒是一直在動作,唯中斷是設定值到了動作一次,所以在下想知道的是中斷和執行緒倒底誰的優先權較高! 另,若開了2個以上的執行緒時,要是遇到同個時間到時,會先做誰,還是就當機? 另,若開了2個以上的中斷,優先權如何知道,可以自己決定嗎?可以由何處更改? 因為有用到硬體(USB),所以收送資料對在下蠻重要的,那在下對中斷這部份雖然翻了書...但也沒有得到答案,是故請教各位前輩看看,感謝各位了! |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
Timer 叫計時器,計時器有普通計時器與高精度計時器
中斷叫 int,需要使用組合語言控制 同一程序的執行緒本身就有順序,同時執行緒可以設定優先順序,查 Windows API 關鍵字 priority 最後 PC 本來就是一台依次序執行的機器,此種 Time-Sharing Machine 本來就無法做到「絕對」的「計時」 所以沒有所謂同時時間到這件事,不可能發生,只是看起來同時到,實際上還是有很微小的誤差,你感覺不出來而已 如果你要做到決絕對精準,請考慮使用 real-time system 不然就好好思考,你的程式的用途與容許的誤差,再決定使用的元件,以及非預期狀況的解決方式 ===================引 用 genkigon 文 章=================== 在下是BCB的新手...大約剛學...但是時間有點點趕,所以決定請教前輩們,看看能否得到解答。 在下用執行緒做接收的動作,將接收的資料顯示。這部份沒問題,單純的接收。 中斷timer部份做資料的傳送,當同時啟動時(執行緒和中斷),原本500ms中斷應該要反應一次的,可是偶而會發生慢或快的反應。 就在下的了解,執行緒是一直在動作,唯中斷是設定值到了動作一次,所以在下想知道的是中斷和執行緒倒底誰的優先權較高! 另,若開了2個以上的執行緒時,要是遇到同個時間到時,會先做誰,還是就當機? 另,若開了2個以上的中斷,優先權如何知道,可以自己決定嗎?可以由何處更改? 因為有用到硬體(USB),所以收送資料對在下蠻重要的,那在下對中斷這部份雖然翻了書...但也沒有得到答案,是故請教各位前輩看看,感謝各位了! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |