Godot C# 在后台运行

Posted

技术标签:

【中文标题】Godot C# 在后台运行【英文标题】:Godot C# Running in the background 【发布时间】:2021-10-27 12:00:50 【问题描述】:

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

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

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

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

我想避免:

c# 代码运行时游戏挂起

【问题讨论】:

【参考方案1】:

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

你应该阅读微软的introduction to asynchronous based programming。

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

    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);
        );
    

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

【讨论】:

这引出了一些网上资料-godotengine.org/qa/80078/…

以上是关于Godot C# 在后台运行的主要内容,如果未能解决你的问题,请参考以下文章

关于C# WPF线程后台运行的

在后台C#中每小时运行一个方法[重复]

c# - 如何强制关闭运行它自己的线程的后台工作者

C#前台线程与后台线程的区别和联系 (转)

C# winform 程序在后台运行 点击快捷键使程序做出相应反应。

C#,Csharp,多串口如何后台运行,如何把数据写入数据库的问题