当前位置: 首页 > 编程语言 > C#

如何使用.NET4中的任务并行库链接异步操作?Share

时间:2023-04-10 10:52:46 C#

如何在.NET4中使用任务并行库链接异步操作?我正在尝试以编程方式在C#4中链接异步操作,例如写入给定的Stream对象。我最初是“手动”执行此操作,将回调从一个操作挂接到下一个操作,但我想我会尝试使用.NET4任务并行库来省去重新发明并发轮的麻烦。首先,我将异步调用包装在Tasks中,如下所示:);}Continuations使链接同步操作变得非常容易(如果你原谅不幸的方法名称):但是没有以与Task.ContinueWith相同的方式接受异步操作的Task.ContinueWith方法版本。因此,假设我坚持TPL,我正在寻找此方法的正确实现:publicstaticTaskChainWrite(Streamstream,byte[]data,TaskprecedingTask){//?}到目前为止我最好的想法是链接创建一个新的写入任务,然后使用Unwrap扩展方法将任务传输回任务:publicstaticTaskChainWrite(Streamstream,byte[]data,TaskprecedingTask){returnprecedingTask.ContinueWith(x=>CreateWriteTask(stream,data)).Unwrap();据我所知,这是无法控制任务何时开始的不幸后果。因为你永远不知道一个任务什么时候开始,所以不会有重载等问题。precedingTask.ContinueWith(TasknextTask)因为一旦创建,当你输入'ContinueWith'时它可能已经开始了。此外,它会造成类型混乱。这里的类型应该是什么:precedingTask.ContinueWith(TasknextTask)正在返回一个T,那么下一步要获取并返回什么?:)这可以通过闭包来解决。尝试使用ContinueWhenAll()或ContinueWhenAny()而不是ContinueWith()。看这里。以上是C#学习教程:如何使用.NET4中的任务并行库链接异步操作?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: