- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Win8 中,我使用 somefile.CopyAsync(destFolder, newName) 来复制文件。但是当我尝试取消它时,它似乎不起作用。这两种方法是我尝试取消它的方式:
只需使用 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;
}
}
使用 AsTask(CancellationToken)
var cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(1));
var op = somefile.CopyAsync(destFolder, newName).AsTask(cts.Token);
await op;
在第一种方法中,没有调用 AsyncStatus.Cancel 的情况,在第二种方法中,也没有任何反应。还有其他方法可以尝试吗?谢谢!
最佳答案
你试过这个吗...
var task = file.CopyAsync(KnownFolders.DocumentsLibrary, "test").AsTask();
task.AsAsyncAction().Cancel();
它在我的简单测试中有效。
如果您想使用取消 token ,此代码也应该有效
var source = new CancellationTokenSource(TimeSpan.FromMilliseconds(500));
var token = source.Token;
token.Register(() => { Debug.WriteLine("Your cancellation code here"); });
var task = file.CopyAsync(KnownFolders.DocumentsLibrary, "test").AsTask(token);
关于c# - 有没有办法取消 StorageFile.CopyAsync()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12154397/
在 Win8 中,我使用 somefile.CopyAsync(destFolder, newName) 来复制文件。但是当我尝试取消它时,它似乎不起作用。这两种方法是我尝试取消它的方式: 只需使用
在磁盘之间复制大文件的工具中,我替换了System.IO.Stream.CopyToAsync 的 System.IO.FileInfo.CopyTo 方法。这允许在复制过程中进行更快的复制和更好的控
我将通过 StorageFile.CopyAsync() 将一些文件从视频库复制到我的应用程序存储中方法,但如果文件大小超过 1GB,则会抛出如下异常: Type: System.Runtime.In
我尝试使用以下方法,但它们在 Uno (Android) 中都显示为未实现。我能做什么? 是否有任何 Xamarin.Essentials 替代品? 或其他NuGet 包? 或者我应该在每个平台上使用
我需要使用 SQlite 数据库“播种”我的应用程序。我使用了@Kasper 在帖子 How to deploy a database file with a Xamarin.form app? 中建
我是一名优秀的程序员,十分优秀!