在串行端口的DataReceviedHandler中,我測試是否設置了bool。 如果沒有,我將下一個塊發送到串口。DataReceviedHandler錯誤,也許是線程問題
布爾值由類事件設置。在圖中你可以看到程序進入了if語句,儘管bool是假的。這是一個線程問題嗎?我能做什麼?
a busy cat http://img163.imageshack.us/img163/3324/boolh.png
如果嘗試這樣做:
lock (_syncLock)
{
if (_wrEEPROM)
{
//Hier müssen die weiteren 128er Blöche übertragen werden
SerialControl.Port.Write(_yTestMod.CreateYModemBlock(wrEE.EEPROMar, _eepromBlockIndex), 0,
_yTestMod.CreateYModemBlock(wrEE.EEPROMar, 2).Length);
_eepromBlockIndex += 1;
}
}
,這在事件:
lock (_syncLock)
{
_eeprom = false;
_logger = false;
_wrEEPROM = false;
}
,但它仍然沒有工作。
你是說你在開關的開頭有一個鎖(不管)嗎? –
對不起,這是誤導,我的意思是布爾ist由一個類的事件設置... – Kingpin
你需要一個鎖周圍寫_and_圍繞閱讀該布爾...也許在切換之前製作它的副本。 –