我具有使用正確的代碼運行該方法LoadSystemData我卻用它的任務一些麻煩似乎之前實際上已經完成了它的任務,或因此在我看來,要設置IsLoaded真。關鍵字等待關鍵字是可能不是,因爲這個代碼在OnCreate中活動任務和線程的煩惱
if (!ClientObjects.IsLoaded)
{
t = Task.Factory.StartNew (() => LoadSystemData());
t.Wait();
}
public static async Task LoadSystemData()
{
await Profile.Load();
await GroceriesHistory.Load();
clientGroups = await Group.LoadAll();
clientShoppingLists = await ShoppingList.LoadAll();
IsLoaded = true;
}
你想做什麼?這個靜態方法應該是一個asyncTask嗎? – Mike 2014-12-06 15:13:06
小心解釋爲什麼* await關鍵字可能不是一個好主意,因爲此代碼在OnCreate活動*中運行?如果我沒有錯,你發佈的代碼將會陷入僵局。順便說一句你的問題是什麼? *我有一些麻煩* - 他們是什麼? – 2014-12-06 15:14:44
我雖然認爲OnCreate是第一個必須運行的活動生命週期方法,但它異步運行會產生問題,請注意,我對異步編程的瞭解非常有限。從代碼示例的測試運行中,看起來好像任務在任何Profile.Load()等完成之前完成。 – Guano 2014-12-06 16:21:05