private void button_Click(object sender, EventArgs e)
        {
        label1.Text ="good";
        Thread.Sleep(5000);
        sndPlaySound(path+"good"+ ".wma", 0);
       }
我想让lable1显示出来再播放声音,可是这段代码总是先播放声音再显示lable1.
大概label要比声音晚0.2秒才能显示。这样使用的人会感觉很卡~~~很不好怎么才能先显示label再发声啊?

解决方案 »

  1.   


    Control.TextChanged 事件 
    调用嘛。
      

  2.   

    label1.Text ="good";
    Application.DoEvents();
    ...
      

  3.   

    private void button_Click(object sender, EventArgs e)
    {
        label1.Text ="good";
        label1.Refresh();//Application.DoEvents();也可以。(要给主线程修改界面控件的机会)
        Thread.Sleep(5000);//(这也是主线程暂停,也没给主线程修改界面控件的机会)
        sndPlaySound(path+"good"+ ".wma", 0);
    }轻轻松松开发软件,请了解《程序员秘书》
    《程序员秘书》提供大量总结性的源代码例子和总结性的文本资料
    初学者的好工具,程序员的技巧库详见:http://www.psec.net.cn《程序员秘书》功能展示Flash动画:
    http://www.psec.net.cn/psec/程序员秘书.zip