在我们当前实现的C#windows服务中,我必须包含一个方法来在源文件夹和目标文件夹之间执行文件复制。我假设我不应该使用“后台工作者”,因为这是基于服务而不是基于UI的。我应该包括异步文件IO操作吗?或者我应该简单地生成后台线程?
答案 0 :(得分:0)
如果复制过程非常耗时,我肯定会建议跨越专用于复制过程的新后台工作程序(线程),以便主服务线程可以自由地执行更重要和有意义的操作。 此外,您可能还需要复制后台工作程序向主服务线程公开属性,复制过程的状态,即未开始,正在进行中,已完成。
请查看此处的备注部分:
答案 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
}