Windows服务中的异步操作

时间:2014-03-03 23:43:38

标签: c# windows service

在我们当前实现的C#windows服务中,我必须包含一个方法来在源文件夹和目标文件夹之间执行文件复制。我假设我不应该使用“后台工作者”,因为这是基于服务而不是基于UI的。我应该包括异步文件IO操作吗?或者我应该简单地生成后台线程?

2 个答案:

答案 0 :(得分:0)

如果复制过程非常耗时,我肯定会建议跨越专用于复制过程的新后台工作程序(线程),以便主服务线程可以自由地执行更重要和有意义的操作。 此外,您可能还需要复制后台工作程序向主服务线程公开属性,复制过程的状态,即未开始,正在进行中,已完成。

请查看此处的备注部分:

msdn.microsoft.com/en-us/library/

答案 1 :(得分:0)

void WindowsService()
{
    // ...
    ThreadPool.QueueUserWorkItem(new WaitCallback(ProcessFile), a);
    // ...
    // This code executes without waiting for ProcessFile to complete
}

private void ProcessFile(object a)
{
    // Perform File I/O here
}

通过http://www.dotnetperls.com/threadpool