gpt4 book ai didi

c# - 在主线程上执行 Task.Run

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:12 25 4
gpt4 key购买 nike

我正在为 iOS 应用程序使用 monotouch/Xamarin。

Task.Run 的文档状态:

Queues the specified work to run on the ThreadPool and returns a taskhandle for that work.

这实质上表明它可以在任何线程 ThreadPool 上运行。

我想做这样的事情:

Task.Run(async () => await PerformTask());

但让它在主线程上运行。通常我会用 BeginInvokeOnMainThread 来写它如下:

BeginInvokeOnMainThread(async () => await PerformTask());

但我在共享代码中执行此操作,不想使用 iOS 特定调用。有没有办法让我告诉 Task.Run() 在主线程上调用操作?

最佳答案

如果您想在当前线程而不是线程池线程中运行 PerformTask,您只需调用Task.Run。只需使用:

PerformTask();

你就完成了。如果您只想在该任务完成后继续执行该方法的其余部分,则 await 它:

await PerformTask();

没有理由在这里为您调用Task.Run,也没有任何理由创建一个没有特殊原因等待方法的lambda(您可以如果您想从线程池线程启动它,只需直接调用它即可。

关于c# - 在主线程上执行 Task.Run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com