在ApplicationShouldTerminate上刷新UI

时间:2013-01-25 20:13:26

标签: c# cocoa mono monomac

当我尝试在退出应用程序时更新按钮文本时,我遇到了麻烦。

ApplicationShouldTerminate方法是这样的:

        public override NSApplicationTerminateReply ApplicationShouldTerminate (NSApplication sender)
    {
        this.mainWindowController.EndApp();
        return NSApplicationTerminateReply.Now;
    }

EndApp()方法是这样的:

        public void EndApp ()
    {
        this.testButton.Title="Closing App";
        //long time process
        for (int i = 0; i < 1000000; i++) {
            int a=1;
        }
    }

如何让应用程序刷新UI控件?

1 个答案:

答案 0 :(得分:1)

您可以在标题更改后或for循环中添加Application.DoEvents(),具体取决于您是否还有其他操作。这会强制应用程序处理队列中的事件,在这种情况下,这将是标题的文本更改。

public void EndApp ()
    {
        this.testButton.Title="Closing App";
        Application.DoEvents();
        //long time process
        for (int i = 0; i < 1000000; i++) {
            int a=1;
            //or if you're processing stuff
            Application.DoEvents();
        }
    }