Kos*_*ukh 2 c# xamarin.ios task-parallel-library ios async-await
我正在使用monotouch/Xamarin作为iOS应用程序.
Task.Run
各州的文件:
将指定的工作排队到ThreadPool上运行并返回该工作的任务句柄.
这基本上表明它可以在任何线程上运行ThreadPool
.
我想做的事情如下:
Task.Run(async () => await PerformTask());
Run Code Online (Sandbox Code Playgroud)
但让它在主线程上运行.通常我会用BeginInvokeOnMainThread
如下方式编写它:
BeginInvokeOnMainThread(async () => await PerformTask());
Run Code Online (Sandbox Code Playgroud)
但我在共享代码中这样做,不想使用iOS特定的调用.有没有办法让我告诉Task.Run()在主线程上调用操作?
如果要PerformTask
在当前线程中运行,而不是线程池线程,则只需要不调用Task.Run
.只需使用:
PerformTask();
Run Code Online (Sandbox Code Playgroud)
你完成了 如果您只想在该任务完成后继续执行该方法的其余部分,那么await
它:
await PerformTask();
Run Code Online (Sandbox Code Playgroud)
没有理由Task.Run
为你打电话,也没有任何理由创建一个awaits
没有特殊原因的方法的lambda (你可以直接调用它,如果你想从线程池线程启动它).
归档时间: |
|
查看次数: |
3183 次 |
最近记录: |