Task.Factory.FromAsync和BeginX/EndX的区别?在TcpClient中使用标准BeginRead和EndRead方法并使用Task.Factory.FromAsync时,我有非常相似的代码。这里有一些例子..错误处理代码没有显示。Task.Factory.FromAsync:privatevoidRead(Statestate){Taskread=Task.Factory.FromAsync(state.Stream.BeginRead,state.Stream.EndRead,state.Bytes,state.BytesRead,state.Bytes.Length-状态.BytesRead,状态,TaskCreationOptions.AttachedToParent);读取.ContinueWith(FinishRead);}privatevoidFinishRead(Taskread){Statestate=(State)read.AsyncState;state.BytesRead+=read.Result;}使用BeginRead和EndRead标准用法回调:}privatevoidFinishRead(IAsyncResultasync){Statestate=(State)async.AsyncState;state.BytesRead+=state.Stream.EndRead(异步);这两个都很好,但我很好奇它们之间的区别。两者的代码行几乎相同,而且它们似乎都以相同的效率执行完全相同的功能。哪个更好?您希望在生产代码中看到什么?我更愿意看到基于任务的代码:基本上在.NET4上运行的现代代码中,任务是表示正在进行的任务的惯用方式。这是一个比早期尝试更丰富的工作环境,如果你有机会,我会抓住它。显然,如果您使用的是.NET3.5或更早版本,生活会有点困难,但我假设Task是一个选项,当您问...两者之间的区别?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
