0
問題:wav文件播放,但GUI根本沒有響應。每個循環都不更新lbl_PhonoString.Text。用戶無法暫停或取消,直到所有文件完全播放。C#Wav文件播放凍結GUI
我知道我必須使用海洋風格的線程來播放Wav文件。我對線程並不熟悉。有人可以建議我應該在這裏做什麼?
我的代碼:
//====================================================
bool bPause = false, bCancel = false;
private void btn_DicStart_Click(object sender,EventArgs e)
{
PlayWave("StartProgram.WAV");
for(int i=0;i<10;i++)
{
lbl_PhonoString.Text=i.ToString();
PlayWave("NextSound.WAV");
PlayWave("Clue"+i.ToString()+".WAV");
//Check if user pressed pause/cancel
while(bPause);
if(bCancel)
break;
}
}
private void btn_Pause_Click(object sender,EventArgs e)
{
bPause=!bPause;
if(!bPause)
btn_Pause.Text ="PAUSE";
else
btn_Pause.Text ="CONTINUE";
}
private void btn_Cancel_Click(object sender,EventArgs e)
{
bCancel=true;
}
//Play the Wave File
private void PlayWave(string WaveFile)
{
System.Media.SoundPlayer myPlayer=new System.Media.SoundPlayer();
myPlayer.SoundLocation=WaveFile;
myPlayer.PlaySync();
}
//====================================================
有人可以指導如何使用多線程? – user450143 2010-09-17 01:45:58