尝试做这样的事情:
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);
但如果我错了请纠正我,但 task2 是否有机会在 task1 执行时或之前执行?我想要类似 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));
关于c# - 如何在不阻塞的情况下等待一个任务完成后再调用另一个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592903/