- PR -

C#アプリケーションの効果音について

1
投稿者投稿内容
Npara
会議室デビュー日: 2006/02/06
投稿数: 13
お住まい・勤務地: 福岡市
投稿日時: 2006-02-16 15:16
いつもお世話になっております、Nparaです。

Threadでボタン音を再生させる処理を追加したのですが、
連続でボタンを押した場合、
前の音(Thread)が終了するのを待ってから
次の音(Thread)が再生される状態になります。

そこで、Threadで音を再生する処理の前に

If (音を再生しているThreadが存在する)
{ スレッド破棄 }

という処理を追加したいのですが、可能でしょうか?
ThreadのNameを指定して破棄させることは可能でしょうか?
ご教授よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-02-16 16:07
諸農です。

引用:

そこで、Threadで音を再生する処理の前に



音を出すスレッドの数を管理すればいいのかしら。

コード:
volatile int Count = 0;
private void button1_Click(object sender, EventArgs e)
{
    listBox1.Items.Add(DateTime.Now.ToLongTimeString());

    if (Count == 0)
    {
        System.Threading.Thread th = new System.Threading.Thread(
            new System.Threading.ThreadStart(delegate{
                Count++;
                Console.WriteLine("Thread START");
                System.Threading.Thread.Sleep(5000);
                Console.WriteLine("Thread END");
                Count--;
            }));
        th.Start();
    } else
        Console.WriteLine("Thread REJECT Count = {0}",Count);
}



すいません、匿名メソッド使いました。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Npara
会議室デビュー日: 2006/02/06
投稿数: 13
お住まい・勤務地: 福岡市
投稿日時: 2006-02-16 19:13
Jubei様、返信ありがとうございます。

Threadの中の処理でフラグをたてるのですね!
これで再生中か否か判定できます!

ボタンクリック(イベント)
{
 If(フラグ = true)
 {☆ここで破棄☆}

 ThreadStart(効果音).Start();←(破棄させたいThread)
}

効果音()
{
 フラグ を true
 音を鳴らす
 フラグ を false
}

簡単な流れだけの記述ですいません
スレッドを特定して、破棄させる事は可能でしょうか?
また、別の方法の方が良いというアドバイスも大歓迎ですので、
ご教授よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)