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));

を取得したらawaitTask通常は他に何もする必要はありません。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 に答える