Hãy nói rằng tôi có một phương pháp mà các cuộc gọi một phương pháp async ngay lập tức hoặc tương tự:Phương thức async pass-through có thực sự cần mẫu await/async không?
//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));
}
Có bất kỳ lý do cụ thể mà Foo2
nhu cầu/nên có async/chờ đợi, như trái ngược với chỉ đơn giản gọi:
//other method
public Task<int> Foo3(Double double)
{
return Foo1(Convert.ToInt32(double));
}
trong một người tiêu dùng, điều này sẽ vẫn được chờ đợi, likeso, không phân biệt:
int x = await Foo1(1);
int x = await Foo2(1D);
int x = await Foo3(1D);
Tất cả các báo cáo sẽ biên dịch. Trình biên dịch sẽ tạo ra các IL khác nhau cho hai phương pháp khác nhau?