当我使用Thread.Sleep时,如何更新UI

Dar*_*arf 1 c# wpf

这是我正在使用的功能:

    private void Convert2Morse(object obj)
    {
        TextConverted = am.Convert(NormalText);

        foreach (char symbol in TextConverted)
        {
            int milliseconds = 0;

            switch (symbol)
            {
                case '·': milliseconds = 500; break;
                case '—': milliseconds = 1000; break;
                case ' ': continue;
                default: throw new Exception("Something is wrong");
            }

            System.Media.SystemSounds.Beep.Play();
            System.Threading.Thread.Sleep(milliseconds);
        }
    }
Run Code Online (Sandbox Code Playgroud)

TextConverted属性显示在textBox中,但刷新直到完成子例程.

有没有办法可以显示刷新UI?

Ebo*_*ike 5

永远不要睡在UI线程中.决不.永远.

您需要创建一个新线程来播放您的声音.