4

C# 中似乎没有一种方法可以使用 await 解压缩文件,所以我创建了一个任务,我正在尝试等待它。我收到以下错误:

Cannot implicitly convert type 'void' to 'System.Threading.Tasks.Task'

当我运行这段代码时..

Task taskA = await Task.Run(() => ZipFile.ExtractToDirectory(tempPath + @"\" + ftpFile, pvtdest));

对此的任何想法将不胜感激!谢谢 :)

4

2 回答 2

12

只需删除Task taskA =,如下所示:

await Task.Run(() => ZipFile.ExtractToDirectory(tempPath + @"\" + ftpFile, pvtdest));

一旦你awaita Task,你通常不需要做任何其他事情。ATask没有结果值,这就是编译器抱怨“void”的原因。await完成后将处理传播异常并继续该方法,Task.Run这应该是您所需要的。

于 2013-07-19T20:34:51.973 回答
1

尝试:

Task.Factory.StartNew(() =>
{
    ZipFile.ExtractToDirectory(tempPath + @"\" + ftpFile, pvtdest)
}

你应该包括System.Threading.Tasks;

于 2013-07-19T20:26:05.823 回答