Godot C# 运行 在后台

Godot C# Running in the background

我想要一个非常昂贵的 C# 脚本在玩主场景游戏时 运行 在后台。

作为代码的预期工作流程示例:

  1. 睡 3 秒
  2. 在关卡场景中创建并显示 tilemap 实例
  3. 睡 3 秒
  4. 用一些新的精灵更新瓦片地图

休眠时间从来都不是恒定的,也无法提前知道:它们是算法。

我想避免:

运行 CPU 任务中的密集型代码将防止主 UI 线程锁定。

您应该阅读 Microsoft 的 基于异步的介绍 编程.

这是我认为您想要的示例:

    static async void DoHeavyWork()
    {
        //Starts a new Task that will NOT block the UI thread. 
        await Task.Run(async () =>
        {
            //This simulates the heavy task.
            await Task.Delay(3000);

            await Dispatcher.BeginInvoke(() =>
            {
                //Run code on the UI thread here. 
            });
            await Task.Delay(3000);
        });
    }

如果这对您有帮助,请将此答案标记为解决方案,我将不胜感激。