如何在调用另一个任务之前等待一个任务完成而不阻塞
本文关键字:任务 一个 调用 另一个 等待 | 更新日期: 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));