我不得不在前一段时间实现类似的东西,下面是我所做的,这里是基本的代码示例。 你可以找到全班Here。
下面是你需要做什么的基础知识,
你需要一个队列,你可以使用任何列表数据结构来存储您的队列,您需要的文件守望新的项目添加到队列中。
你需要另一种处理队列的方法,就像这样。 (这将在队列中处理项目,直到队列为空)
private void ProcessQueue()
{
do
{
try
{
Itme job = null;
lock (Queue)
{
if (Queue.Count != 0)
{
job = Queue.First();
Queue.Remove(job);
}
}
if (job != null)
{
Execute(job);
}
}
catch (Exception e)
{
Logger.FatalException("An error has occurred while processing queued job.", e);
}
} while (Queue.Count != 0);
Logger.Trace("Finished processing jobs in the queue.");
return;
}
你还需要确保你的文件守望者的意志触发,如果它不是已在运行的ProcessQeueue()
,应该很容易找出答案,您可以使用您设置的标志变量,或者如果您有流程实例,则可以检查流程实例的状态。