0

我正在开发我的游戏的专用服务器,并且我正在使用它的表单,因为
它对托管者来说更友好,嗯,基本上,管理服务器。
但我有一个问题。

                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 上的脚本也运行时使表单可操作?

4

1 回答 1

2

您可以尝试放入循环中:

Application.DoEvents();

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

但是,我不会这样做,并建议您使用类似的方法重新考虑您的方法,BackgroundWorker并使用ReportProgressandInvoke方法与 UI 线程对话。

于 2013-07-27T20:13:51.500 回答