我编写了一个方法,用异步方法返回的对象填充列表。
public async Task<ObjectToReturn> GetObjectToReturnAsync()
{
var objectToReturn = new ObjectToReturn
{
List1 = [
await AsyncMethod1("A", null),
],
List2 = [
await AsyncMethod1("B", false),
await AsyncMethod1("C", false),
await AsyncMethod1("D", false),
await AsyncMethod1("E", false),
],
List3 = [
await AsyncMethod1("B", true),
await AsyncMethod1("C", true),
await AsyncMethod1("D", true),
await AsyncMethod1("E", true),
]
};
return objectToReturn;
}
方法
AsyncMethod1
执行一些数据库查询,我注意到查询是同时运行的。
为什么指令不按顺序执行?
如何解决?
我创建了一个小提琴,显示方法按预期顺序执行:https://dotnetfiddle.net/PC8Xo0。
输出为:
A
B False
C False
D False
E False
F True
G True
H True
I True
这表明异步方法是按照它们的编写顺序等待的。
您提到的问题可能在代码的其他地方。