Den*_*nis 7 .net c# file task-parallel-library async-await
在类中有一堆相当方便的方法File,比如ReadAll***/ WriteAll***/ AppendAll***.
当我需要他们的异步对应物时,我遇到了很多情况,但它们根本不存在.
为什么?有任何陷阱吗?
我知道,这些方法可以轻松实现,但有没有理由不在开箱即用的框架中实现它们?
“...我需要它们的异步对应项,但它们就是不存在。为什么?”
与 async-await 一起添加到 .Net 框架的所有方法XXXAsync(不包括考虑异步开发的新库)都只是BeginXXX/ 的包装器EndXXX。
他们没有添加任何新的异步操作,只是将旧的异步操作转换为新的基于任务的操作。例如这是UdpClient.SendAsync:
public Task<int> SendAsync(byte[] datagram, int bytes)
{
return Task<int>.Factory.FromAsync(BeginSend, EndSend, datagram, bytes, null);
}
Run Code Online (Sandbox Code Playgroud)
既然没有,没有File.BeginReadAll也是File.EndReadAll可以理解的File.ReadAllAsync。
有什么陷阱吗?
实现这些方法的唯一陷阱是以真正异步的方式实现,而不是伪造异步。
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |