假設我有一個不是異步方法,但返回一個Task
(因爲定義是也用於異步實現的接口)從Task的非異步方法返回什麼作爲返回類型?
public Task DoWorkAsync(Guid id)
{
// do the work
return ...;
}
什麼是回報最好的對象?我現在的選擇:
return Task.Yield();
return Task.FromResult<object>(null);
// any of the other but cached in a static field and reused.
附註 - 如果可能的話,再引入獨立的接口,它不具有異步操作(ISP原則) –
@SergeyBerezovskiy - 在這種情況下,最大的問題是,來電者必須根據所提供的實現(例如IoC)在兩個接口之間切換。我可以在中間創建一個包裝,但對於它來說,原始問題仍然很重要。 –