如何在调用另一个任务之前等待一个任务完成而不阻塞

本文关键字:任务 一个 调用 另一个 等待 | 更新日期: 2023-09-27 18:09:56

尝试这样做:

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));