0
我認爲這是做這類事情的正確方法,但我無法找到明確的文檔,用這麼多的單詞來說明。從另一個異步例程調用異步例程
我有相關的例程,其中例程A對其輸入做一些處理,然後委託給例程B來完成實際的工作。例如,假設我可以根據整數索引或某個值的字符串鍵做一些工作。我可能有一些常規的兩個重載,一個取,是以關鍵指標和一個:
// Do the work based on the int index
public bool RoutineA(int index)
{
// Find the key
string key = {some function of index};
// Let the other overload do the actual work
return RoutineB(key)
}
// Do the work based on the string key
public bool RoutineB(string key)
{
bool result = {some function of key};
return result;
}
現在,假設RoutineB想成爲異步,所以就變成:
// Do the work based on the string key
public async Task<bool> RoutineB(string key)
{
bool result = await {some function of key};
return result;
}
所以。 ..我的問題是,假設RoutineA在調用RoutineB之前沒有進行自己的異步處理,我可以這樣編碼它。請注意,我不會將例程標記爲async
(並且我不調用例程B的await
),從而節省了在調用狀態機時構建狀態機的開銷。
// Do the work based on the int index
public Task<bool> RoutineA(int index)
{
// Find the key
string key = {some function of index};
// Let the other overload do the actual work
return RoutineB(key)
}