/// <summary>スレッド関数を実行</summary>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // 実行時間を生成
            int execTime = 0;
            int maxExecTime = 0;

            if (Int32.TryParse(this.textBox1.Text, out maxExecTime) == false)
            {
                MessageBox.Show("実行時間が認識できない!");
                return;
            }
            else
            {
                Random random = new Random();
                execTime = random.Next(maxExecTime);
            }

            // Threadに渡すThread関数付クラスを生成
            Waiting wainting = new Waiting();
            wainting.SetResult = new Waiting.SetResultDelegate(this.SetResult) ;
            wainting.SleepTime = execTime;

            if (this.ThreadCount >= 10)
            {
                // 10Thread以上は同時起動しない。
                MessageBox.Show("10Thread以上は同時起動しない!");
            }
            else
            {
                // Thread数情報をインクリメント
                this.ThreadCount++;
                this.label1.Content = this.ThreadCount.ToString();

                // Threadを生成してThread関数を実行
                Thread th = new Thread(new ThreadStart(wainting.Callback_MultiThread));
                th.Start();

                // 循環参照にならないように、
                // Threadオブジェクトは投げっぱなす。

                // デバック情報(主スレッド)
                Debug.WriteLine("主スレッド@button1_Click:"
                    + Thread.CurrentThread.ManagedThreadId.ToString());
            }
        }
        /// <summary>スレッド関数を実行</summary>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // 実行時間を生成
            int execTime = 0;
            int maxExecTime = 0;

            if (Int32.TryParse(this.textBox1.Text, out maxExecTime) == false)
            {
                MessageBox.Show("実行時間が認識できない!");
                return;
            }
            else
            {
                Random random = new Random();
                execTime = random.Next(maxExecTime);
            }

            // Threadに渡すThread関数付クラスを生成
            Waiting wainting = new Waiting();
            wainting.SetResult = new Waiting.SetResultDelegate(this.SetResult);
            wainting.SleepTime = execTime;

            if (this.ThreadCount >= 10)
            {
                // これ以上はキューイングできない。
                MessageBox.Show("これ以上はキューイングできない!");
            }
            else
            {
                // Thread数情報をインクリメント
                this.ThreadCount++;
                this.label1.Content = this.ThreadCount.ToString();

                // Thread関数をThreadPoolに追加して実行
                ThreadPool.QueueUserWorkItem(new WaitCallback(wainting.Callback_UseThreadPool));

                // デバック情報(主スレッド)
                Debug.WriteLine("主スレッド@button1_Click:"
                    + Thread.CurrentThread.ManagedThreadId.ToString());
            }
        }