Xamarin released对async
/ await
的支持,确实简化了移动平台中响应式UI的开发。从现在开始,我想通过使用async / await的东西来利用它并提高代码的编程水平。
但是,由于我是C#的新手,并且在无法找到可以调用async
方法的代码之前,没有使用await
/ async
。我知道事件处理程序是典型的地方(发生IoC的地方),但是可以想象以下情形:
我想启动后台任务当加载ViewController时(与当按下按钮时]相反)。
async Task PerformMyTaskAsync () { // ... await ... // another async API // ... } public override void ViewDidLoad () { base.ViewDidLoad (); // .. initialize UI await PerformMyTaskAsync (); }
显然,我等不及
PerformMyTaskAsync
中的ViewDidLoad
,因为ViewDidLoad
既不是异步方法也不是事件处理程序。
当视图控制器加载(或出现,等等)时启动后台任务的“替代”方法是什么?
Xamarin发布了对async / await的支持,这确实简化了移动平台中响应式UI的开发。我想利用它,并通过...
最新的Xamarin稳定通道版本支持ViewController生命周期方法的Async / Await重载。试试:
不确定这是否是“最佳”方法,但是您是否尝试过在ViewDidLoad()中触发事件,然后在该事件的处理程序中启动异步代码?
因此,从事件中在UI线程上运行了一些异步操作,如下所示: