如何在后台顺序运行一系列方法

时间:2014-04-03 18:46:08

标签: c# sequence background-process

在我正在处理的程序中,查询设备,为简单起见,我们说它是一个慢速网络请求,响应可能需要200ms。我需要程序在后台反复查询5件事,并使用从这些请求中获得的响应更新UI。有时,用户会给出一个命令,导致另一个网络请求。它需要完成这项任务,然后继续做它以前做过的5件事。

这实际上并不是一个网络请求,因此它的一个限制是这些请求不能重叠,一次只能发生一个请求,所以我不能剥离一堆线程。

我目前的想法是设置一些伪编码的队列,如:

DoTaskA();
DoTaskB();
DoTaskC();
DoTaskD();
DoTaskE();
RequeueTasksABCDE();

然后在DoTaskE()之后但在RequeueTasksABCDE()之前添加用户命令的请求。

从我到目前为止的研究中,我考虑使用BlockingCollection作为队列,但这是好方法吗?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以通过创建新的工作线程并在工作线程中运行您的函数来实现此目的。