簡體   English   中英

UI無法更新foreach循環C#WPF中首先播放的聲音

[英]UI not updating sounds played first in foreach loop C# WPF

我制作了一種紙牌游戲,可以使用foreach循環從UI中的資源獲取並顯示玩家紙牌,效果很好。 我最近還添加了卡聲音,以便在UI中顯示每個圖像之前先播放聲音。 但是,總是先播放聲音,然后再顯示圖像。 有點煩人...

我使用聲音播放器和playsync()。 如何強制GUI更新? (在聲音之間)

這是一些代碼...

以。。開始

//loop
foreach (var player in playerGUIs)....
//Call the sound Card_Sound(); //See below

//Update image player.img1.Source = new BitmapImage(new
Uri(("/Utilities;Component/Resources/" + card_file + ".png"),
UriKind.Relative));


private void Card_Sound()
    { //Play sound System.Threading.Thread.Sleep(800); // First sleep 800 milliseconds

using (FileStream stream = File.Open(@"Resources\dealingcard.wav",
FileMode.Open)) {
    SoundPlayer myNewSound = new SoundPlayer(stream);
           myNewSound.Load();
           myNewSound.PlaySync(); }

}

您是否嘗試過Play(),PlaySync()會阻止UI(如果在UI線程上運行)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM