尝试做这样的事情:
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();
放在两行之间会行得通,但这不会阻止吗?试图远离阻塞。有什么建议吗?
最佳答案
task1.ContinueWith(t=>Task.Factory.FromAsync(stream.BeginWrite, stream.EndWrite, task2Data, 0, task2Data.Length, null, TaskCreationOptions.AttachedToParent));