表单、循环划线和跨平台问题

本文关键字:跨平台 问题 循环 表单 | 更新日期: 2023-09-27 18:25:22

我在游戏的专用服务器上工作,并使用表单,因为
基本上,托管者管理服务器更友好
但我有个问题。

                MainServer main = new MainServer();
                //Application.Run(main);
                main.Show();
                while (0 == 0)
                {
                    ProgramServer.UpdateServerStuff(main);
                    Thread.Sleep(1);
                    main.Update();
                }

表单必须正在运行,while()上的以下脚本必须在表单打开且可操作时运行
但问题是,while(0==0)运行良好并循环,但表单冻结了图像,基本上只显示加载光标。我可以尝试使用线程,但当我尝试更改一些表单元素时,比如按钮文本或它是否处于活动状态时,会出现跨平台的错误
有什么方法可以让while()上的脚本随表单更新?或者在while上的脚本也运行时使表单可操作?

表单、循环划线和跨平台问题

您可以尝试进入循环:

Application.DoEvents();

这将允许继续处理表单的事件。

然而,我不会这样做,并建议您重新考虑使用类似BackgroundWorker的方法,并使用ReportProgressInvoke方法与UI线程进行对话。