作者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