【发布时间】:2019-02-16 10:14:33
【问题描述】:
我使用计时器来检查多线程是否已完成计算。 我有一个用于计算的元素列表和一个添加每个计算元素的列表视图。所以多线程的结果应该是listview元素的数量等于我列表的元素数量。多线程进行计算。
所以我使用了一个计时器,它每 10 秒检查一次列表视图元素的数量是否等于列表元素的数量,如果是,它将发出警报。
这也部分有效,但问题是我收到大约 15 个警报,而不仅仅是一个警报。我也尝试使用这样的块变量:
if(!block)
{
Alert();
block = true;
}
但我仍然收到大约 15 个警报。 重要的是,定时器不是(或应该)不是多线程方法的一部分,它将在多线程启动后第一次调用,而不是在多线程方法中。
【问题讨论】:
-
看看 async/await
-
我感觉您的问题出在细节上。如果您发布更多代码可能会有所帮助。
-
如果您能提供minimal reproducible example,那就太好了。
标签: c# multithreading timer