Visual C++ multi-threading的問題

看板Programming作者 (阿毛)時間15年前 (2010/08/11 13:38), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/2 (看更多)
第一次寫multi-threading 碰到一些問題,觀念不太清楚 希望各位前輩可以給我的意見 我目前是用VC++ 2003開.NET project寫GUI 有個功能是自動從IC更新data 我必須用I2C去一個晶片裡面讀出資料 我現在是拉一個Timer,每一段時間讀取一次 我發現讀取interval太短的話 因為讀取太慢,造成整個程式好像卡住一樣 連按鈕都按不太下去 我目前是不想使用timer 想要開一個thread,在那個thread內做讀取資料的事情 問題1. 如果我讀取資料的function只會被這個thread access到 這是不是代表我不需要用mutex保護呢? 我的想法是反正沒做完的部份下個time slice會繼續做完 也不會有其他的thread進來把一些共用變數內容改掉 如果需要用mutex保護,大概是要保護什麼樣的情況呢? 問題2. 我讀取晶片內部資料的function是另一個USB提供的driver 基本上我就直接呼叫,然後USB晶片幫我去用I2C讀取 muliti-thread,會不會造成我讀取到一半 time slice剛好到了結果被switch走 或者那個driver的讀取function做到一半被switch走造成我讀錯東西呢? 問題3. 如果我還是想要可以讓使用者調整讀取間隔 一般有什麼方法可以讓程式效能高一點? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 66.75.28.157

08/11 20:30, , 1F
跟c#不熟…跟UI有關的,最好都在main thread
08/11 20:30, 1F

08/11 20:32, , 2F
其它的丟worker thread就還好~
08/11 20:32, 2F
文章代碼(AID): #1COZTmzT (Programming)
文章代碼(AID): #1COZTmzT (Programming)