作者vidan41 ( )
看板C_Sharp
標題[問題] 請問如何使async的method完成後再執行下一個任務
時間Mon Dec 30 11:38:14 2013
我正在寫windows store app,
由於希望是在初次load程式時確保已經執行完畢才會進到主畫面,
因此使用extened splash screen延長啟動畫面,
但是因為使用library的function,裡面都是async method,
所以現在變成 :
splash screen ->extened splash screen(0.5秒) -> 還沒讀完的主畫面
這樣延長啟動畫面就變得沒有意義了
--------------------------詢問分隔線-----------------------------
所以想問的是
如何將 Data obj = await asyncMethod(....);
1.改成sync的方式(有辦法嗎?不動到原本method)
或
2.去偵測非同步執行完成後,再去做下個動作
有大致上查了一些文章,包括使用Task.run()、wait()(這個會導致死結)
但是實作都失敗....Orz
謝謝各位!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.123.77
1F:推 YahooTaiwan:1. 顯示splash 2.data obj = await methodAsync() 3. 12/30 13:05
2F:→ YahooTaiwan:隱藏splash 12/30 13:06
3F:→ YahooTaiwan:非同步method加上await後可以把他當作同步method來看 12/30 13:07
4F:→ YahooTaiwan:待 12/30 13:07
5F:推 johnpage:設定旗標,完成時改變狀態。 12/30 13:14
6F:→ firose:async 本身就會傳回 Task 可以去 poll IsCompleted 12/30 19:46
7F:→ firose:var t=Task.Run(async ()=>await asyncMethod()); t.IsXX.. 12/30 20:02