我正在使用.NET 4串行端口類和DataReceived處理程序。NET串行端口DataReceived(開/關)
在DataReceive處理程序中,我從串行端口中刪除處理程序,處理數據,並在函數的末尾重新添加處理程序。
try
{
serial_port.datareceived -= new serialdatareceivedeventhandler(ondatareceived);
// readline and process data
}
catch (exception ex)
{
}
finally
{
serial_port.datareceived += new serialdatareceivedeventhandler(ondatareceived);
}
這種用法的後果是什麼?它似乎工作得很好,雖然我沒有長期測試它。我應該研究一種不同的方法嗎?如果可能,請給出一個簡單的代碼示例/大綱。謝謝。
你爲什麼這樣做?避免再入?順便說一句:你冒這樣的方式丟失一些數據... – Yahia
讓我想知道是否實際上可以重新進入或框架 – Eddy
@yahia - 是的,以避免在處理收到的數據時重新進入。由於設備是手動激活的,數據丟失不成問題,因此我從不丟失數據。 – BoxerJoe