您的位置:首页 > 编程语言 > C#

C#串口通讯出现在 System.IO.IOException 中第一次偶然出现的“System.dll”类型的异常的解决办法

2014-11-29 18:58 363 查看
出现这样的错误,主要是在程序中加入了定时器,定时扫描串口的数据,然后在定时器的处理函数中对串口的数据进行逻辑处理。

这样就有问题了,如果逻辑处理未完成又读到了新的数据,那么就会报错,开始可能还没什么问题,但是累计的错误多了,就会死机了。

其实,处理这样错误的方法很简单,就是利用线程同步的技术。

private static readonly object _object = new object();

bool _isFinished = true;

private void m_timer_Elapsed(object sender, ElapsedEventArgs e)

{

try

{

if (_isFinished)

{

lock (_object)

{

if (_isFinished)

{

_isFinished = false;

#region content

#endregion

_isFinished = true;

}

}

}

}

catch(Exception ex)

{

System.Diagnostics.Debug.WriteLine(ex.Message);

return;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐