我實現一個接口C#任務不是一個任務
Task Something()
,但沒有在執行代碼時調用異步
Task Something(){
var x=1;
return null;
}
這在錯誤路線的結果:
await Something()
如何發回空白任務以使界面快樂?
我實現一個接口C#任務不是一個任務
Task Something()
,但沒有在執行代碼時調用異步
Task Something(){
var x=1;
return null;
}
這在錯誤路線的結果:
await Something()
如何發回空白任務以使界面快樂?
您可以使用Task.FromResult
返回已完成的任務。
Task Something()
{
var x=1;
// Do *something* here ;)
return Task.FromResult(true);
}
請注意,這將同步運行,而不是一個異步操作,所以最好也適當地記錄。
如果期望異步,爲什麼不使它成爲異步?
Task Something()
{
return Task.Run(() => { /* your code here */ });
}
爲了等待任何方法,它需要有一個異步簽名所以爲了等待的東西()應當作出這樣的:
async Task Something()
{
//do stuff
}
請記住,當你想返回一個值,你應該返回一個任務,如果你想返回void,你應該只返回一個任務
它不需要被標記爲異步等待它 - 異步是一個實現細節。它只需要返回可以等待的任務,如任務。 – 2014-12-01 20:23:37