更新C#中的标签播放mp3播放

我正在摆弄一个小问题。在C#程序中,我有一个颜色最初为黑色的标签。播放MP3文件时,标签会变为绿色,在音乐结束后,标签的颜色应为黑色。 现在,播放音乐但标签没有更新。我使用了几个代码示例,但它们都没有工作。我知道这与事件和调用有关,但我如何更改此代码才能使其工作?在Java中我使用SwingUtilities.InvokeLater()方法,但据我所知,在C#中没有对应的方法。
delegate void LabelUpdate();

private void check()
    {
        new Thread(new ThreadStart(updateLabel)).Start();
        playSound();
        next(); // Used to set the label-color to black
    }

private void updateLabel()
    {
        if (label1.InvokeRequired)
        {
            UpdateBox d = new LabelUpdate(updateLabel);
            this.Invoke(d);    
        }
        else
        {
            label1.ForeColor = Color.Green;
        }
    }
任何帮助是极大的赞赏!     
已邀请:
尝试在换色后添加
Application.DoEvents();
。在我看来,最好写一些像:
    label1.ForeColor = Color.Green;
    Application.DoEvents();
    playSound();
    label1.ForeColor = Color.Black;
    
我没有使用过很多线程,只是在使用一个可以使用的线程时让GUI更新
Application.DoEvents();
希望这可以帮助。     
谢谢,这是有效的。我用Thread.Sleep(200)替换了wmp-object的play方法,用于测试目的 - 它可以根据需要工作。 不幸的是,如果使用播放音频文件的命令替换Thread.Sleep() - 函数,则无效。我假设音频文件是在一个单独的线程中播放的。 当然我可以通过在play() - 方法之后添加Thread.Sleep()来忽略这一点,但有没有更好的方法呢?     

要回复问题请先登录注册