尝试做这样的事情:
Task task1 = Task.Factory.FromAsync(stream.BeginWrite, stream.EndWrite, task1Data, 0, task1Data.Length, null, TaskCreationOptions.AttachedToParent);
Task task2 = Task.Factory.FromAsync(stream.BeginWrite, stream.EndWrite, task2Data, 0, task2Data.Length, null, TaskCreationOptions.AttachedToParent);
但如果我错了,请纠正我,但在task1执行期间或之前,task2可能无法执行吗?我想要一些类似ContinueWith的东西,代码不会阻塞,但task2仍然不会执行,直到task1完成。
我尝试了Task task2 = new Task(...)
,所以我可以调用task1.ContinueWith(task2);
但不会编译。我很确定我必须使用FromAsync(自动运行)。我认为将task1.Wait();
放在两行之间会起作用,但不会阻止它吗?试图远离阻挡..
有什么建议吗?
答案 0 :(得分:5)
task1.ContinueWith(t=>Task.Factory.FromAsync(stream.BeginWrite, stream.EndWrite, task2Data, 0, task2Data.Length, null, TaskCreationOptions.AttachedToParent));