簡體   English   中英

線程不在后台運行

[英]Thread doesn't run in background

我正在嘗試在新線程中播放聲音,以便在播放時其他聲音不會打斷它。

但這是行不通的。 盡管新線程在后台運行(我認為),但隨后播放的聲音會中斷它。

ParameterizedThreadStart pts;
        Thread t;

private void playStreak(Object p)
        {
            SoundEffect sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("SOUNDFX/BOMB.wav", UriKind.Relative)).Stream);
            SoundEffectInstance instance = sound.CreateInstance();
            instance.Play();
        }

private void playAsThread()
{
     pts = new ParameterizedThreadStart(playStreak);
     t = new Thread(pts);
     t.Name = "Streak sound!";
     t.Start();
}

我想播放各種聲音而不互相干擾。

我認為您不需要使用線程。 您一次可以擁有16個SoundEffectInstances。 這還不夠嗎?

檢查此示例

它們僅包含三個SoundEffect實例。

    private SoundEffect coyoteSound;
    private SoundEffect birdSound;
    private SoundEffect ambienceSound;

並通過某些事件播放它們。

如果確實需要使用線程,請使用BackgroundWorker 很好,很容易!

暫無
暫無

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

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