Lassen Sie uns sagen, dass ich eine Methode, die ein anderes asynchrones Verfahren unmittelbar oder ähnliche Anrufe:Benötigt eine asynchrone Passthrough-Methode wirklich das Muster "Warten/Asynchron"?
//Main method
public async Task<int> Foo1(int x)
{
var result = await DoingSomethingAsync(x);
return DoSomethingElse(result);
}
//other method
public async Task<int> Foo2(Double double)
{
return await Foo1(Convert.ToInt32(double));
}
Gibt es einen bestimmten Grund, dass Foo2
Bedürfnisse/sollte async haben/await, wie einfach Aufruf Gegensatz:
//other method
public Task<int> Foo3(Double double)
{
return Foo1(Convert.ToInt32(double));
}
In einem Verbraucher, würde dies noch abgewartet werden, likeso, unabhängig von:
int x = await Foo1(1);
int x = await Foo2(1D);
int x = await Foo3(1D);
alle, Aussagen werden kompilieren. Wird der Compiler unterschiedliche IL für die zwei verschiedenen Methoden generieren?