这有点奇怪。我的应用程序在图表上绘制数据,同步到"信号"每秒从外部硬件设备接收。无论何时收到信号,都会在图表上绘制一个新点。
许多简化的伪代码:
while (true)
{
_mre.WaitOne(1000);
PlotPointOnChart();
}
private void SignalReceived(object sender, EventArgs e)
{
_mre.Set();
_mre.Reset();
}
后台任务负责轮询设备(大约每100毫秒),并在"信号"收到了。
应用程序通常工作正常,但是如果我将窗口最小化一两秒然后恢复它,而不是在图表上看到一个或两个新点,则可能有十几个或更多新点。我唯一能想到的是ManualResetEvent
以某种方式受到最小化应用程序的影响?
不确定它是否相关,但是" while"循环运行在后台任务上,使用
从单击按钮开始await Task.Run(() => ...);