最小化应用程序正在影响ManualResetEvent.WaitOne()?

时间:2017-03-23 14:05:16

标签: c# wpf multithreading

这有点奇怪。我的应用程序在图表上绘制数据,同步到"信号"每秒从外部硬件设备接收。无论何时收到信号,都会在图表上绘制一个新点。

许多简化的伪代码:

while (true)
{
    _mre.WaitOne(1000);

   PlotPointOnChart();
}

private void SignalReceived(object sender, EventArgs e)
{
    _mre.Set();
    _mre.Reset();
}

后台任务负责轮询设备(大约每100毫秒),并在"信号"收到了。

应用程序通常工作正常,但是如果我将窗口最小化一两秒然后恢复它,而不是在图表上看到一个或两个新点,则可能有十几个或更多新点。我唯一能想到的是ManualResetEvent以某种方式受到最小化应用程序的影响?

不确定它是否相关,但是" while"循环运行在后台任务上,使用

从单击按钮开始
await Task.Run(() => ...);

0 个答案:

没有答案