我必须创建一个类似于ContinueWith()
的方法,但会在主任务后执行主线程中的继续。在主线程中执行任务的继续的方法
我该怎么做? 我可以无休止地检查Task
状态在我的方法,当它完成开始延续,但我认为这couldn`t以这样的方式工作:
Task<DayOfWeek> taskA = new Task<DayOfWeek>(() => DateTime.Today.DayOfWeek);
Task<string> continuation = taskA.OurMethod((antecedent) =>
{
return String.Format("Today is {0}.", antecedent.Result);
});
// Because we endlessly checking state of main Task
// Code below will never execute
taskA.Start();
所以,我可以在这里做什么?
定义“主线程”。为什么不能只写一个常规的'async'方法?请参阅http://stackoverflow.com/help/mcve以了解什么样的代码示例实际上是一个很好的代码示例。 – 2014-12-04 22:59:11
线程A应创建一个AutoResetEvent,并在它创建线程B时将它的引用传递给线程B,然后等待AutoResetEvent。线程B在完成其工作时应该“设置”线程A正在等待的AutoResetEvent。 – RenniePet 2014-12-05 00:03:08
@PeterDuniho:更合适的问题是,您运行的是哪个版本的.NET?异步/等待是4.5语法。 – code4life 2014-12-05 01:56:06