作者eeakk (阿毛)
看板Programming
标题Visual C++ multi-threading的问题
时间Wed Aug 11 13:38:54 2010
第一次写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
1F:推 aecho:跟c#不熟…跟UI有关的,最好都在main thread 59.115.241.8 08/11 20:30
2F:→ aecho:其它的丢worker thread就还好~ 59.115.241.8 08/11 20:32