消息框显示太早 - C#

时间:2011-12-14 13:27:25

标签: c# windows-phone-7 messagebox

我刚开始编程C#的世界,并且在我的代码中遇到了一个小故障,导致设计被破坏。

出于某种原因,当我尝试更改文本框中的文本时,在显示消息框之前,它不会在视觉上发生变化,而消息框位于代码下方以更改文本。我正在为WP7编程,如果改变了什么的话。它按下按钮运行。

以下是我的代码:

 private void Draw()
    {
        Random random = new Random((int)DateTime.Now.Ticks);

        number[0] = random.Next(0, 9);
        number[1] = random.Next(0, 9);
        number[2] = random.Next(0, 9);

            no1.Text = number[0].ToString();
            no2.Text = number[1].ToString();
            no3.Text = number[2].ToString();

        MessageBox.show("Example message");

    }

1 个答案:

答案 0 :(得分:6)

正如Russell Troywest指出的那样,您的代码正在UI线程上执行,这是负责更新图形界面的完全相同的线程。因此,在您的函数退出之前,文本框的可视化表示将不会更新。

一个简单的解决方案是延迟消息框的执行:

this.Dispatcher.BeginInvoke(() => MessageBox.show("Example message"));

这样,您的draw方法将退出而不显示消息框,然后UI线程将在刷新界面后立即显示它。