按顺序执行异步方法

execute aync methods in order

我有:

public myclass
{
public async Task method1();
public async Task method2();
public async Task method3();
}

我实现了一个函数,它应该在 myclass 对象上依次执行这 3 个方法。我不确定哪种方式更好 (performance/correctness): 1)

public async Task mymethod(myclass obj)
{
await obj.method1();
await obj.method2();
await obj.method3();
}
myclass myobj = new myclass();
await myobj.method(myobj);

2)

public Task mymethod(myclass obj)
{
obj.method1();
obj.method2();
obj.method3();
}
myclass myobj = new myclass();
await myobj.method(myobj);

只有第一个例子是正确的。

即使您修复了第二个示例,使其返回一个 Task 对象,您仍然会遇到每个单独的方法将与其他两个方法同时运行的问题,这似乎正是您想要的想要。 IE。在第二个示例中,您无需等待一个方法完成就可以调用下一个方法。

由于无论如何您都必须在第二个示例中添加某种等待,只是为了使其正常工作,您应该继续使用正确的、惯用的 async/await 在你的第一个例子中看到的技术。