Sib*_*Guy 3 .net c# cancellation-token
我看到CopyToAsync有CancellationToken争论。但我不需要CopyToAsync,因为我的代码已经在后台线程中执行。我只想进行CopyTo重载,CancellationToken每次复制 bufferSize 字节数时都会进行检查。有没有内置的实现?
我刚刚采用了 .NET CopyTo 实现并在循环中添加了一行:
public static void CopyTo(this Stream source, Stream destination, int bufferSize, CancellationToken cancellationToken)
{
var buffer = new byte[bufferSize];
int count;
while ((count = source.Read(buffer, 0, buffer.Length)) != 0)
{
cancellationToken.ThrowIfCancellationRequested();
destination.Write(buffer, 0, count);
}
}
Run Code Online (Sandbox Code Playgroud)
但我发现令人失望的是 .NET Framework 设计者并不关心长时间运行的同步操作的取消。
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |