在Win8中,我使用一些file.CopyAsync(destFolder, newName)来复制文件。但是当我尝试取消时,似乎无法正常工作。
以下是我尝试取消的两种方法:
just use IAsyncOperation.Cancel
var op = somefile.CopyAsync(destFoder, newName); op.Cancel(); op.Complete = (x,y) => { switch(y) { case AsyncStatus.Complete: Debug.WriteLine("Completed" + x.GetResults().Name); break; case AsyncStatus.Cancel: Debug.WriteLine("Canceled") break; } }
use AsTask(CancellationToken)
var cts = new CancellationTokenSource(); cts.CancelAfter(TimeSpan.FromSeconds(1)); var op = somefile.CopyAsync(destFolder, newName).AsTask(cts.Token); await op;
在第一种方法中,AsyncStatus.Cancel不会被调用,在第二种方法中也没有任何反应。我还可以尝试其他方式吗?谢谢!
await task
,第一种方法也不起作用。 - seanhc