Visual C++ multi-threading的問題
第一次寫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
08/11 20:30, 1F
→
08/11 20:32, , 2F
08/11 20:32, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章