我有類似於下面的代碼的多個塊:使用泛型委託掛鉤的異步調用
void GetPerson(Action<PersonView, Exception> callback);
...
IsBusy = true;
_personRequested = true;
_service.GetPerson((person, error) =>
{
if (error != null)
{
return;
}
_person = person;
_personLoaded = true;
IsBusy = false;
});
的問題我運行到是給定類可能火了多個不同的異步調用,並IsBusy屬性必須是'聰明'的,因爲只要調用'A'完成,不會關閉,但'B'和'C'仍然處於待定狀態。因此_personRequested和_personLoaded布爾值。但是,我想去更通用的東西,但有點不確定如何繼續。
我最初的想法是設置一個函數,將上面的代碼作爲代理使用,但我不斷陷入奇怪的語法。我喜歡這樣的功能,我只是簡單地把所有東西都包裝起來,並把它作爲一個匿名方法傳遞給我的函數,然後在那個函數和回調函數中處理我的類的繁忙狀態。
任何幫助表示讚賞,謝謝。
這比我最初提出的要簡單得多。這應該很好。 – Brandorf 2011-02-03 19:59:49