ナビゲーション リンクのスキップトップページ > コードの破片から > マルチスレッドを利用する
▼ マルチスレッドを利用する ▼

  以下のサンプルは無限ループにより増加する数値をWindowsフォームのタイトルバーに反映する単純なWindowsアプリケーションです。この様な負荷が掛かる処理をシングルスレッドで行うとすると、アプリケーションが固まってしまい不測の事態が発生する恐れがあります。

マルチスレッドを利用する

using System;
using System.Windows.Forms;
using System.Threading;

namespace TestMta
{
    class TestMta : Form
    {
        ThreadStart ts;
        Thread thread;

        TestMta()
        {
            this.Load +=new EventHandler(TestMta_Load);
        }

        protected override void Dispose(bool disposing)
        {
            // スレッドを停止します。
            thread.Abort();
            base.Dispose (disposing);
        }

        void TestMta_Load(object sender, EventArgs e)
        {
            // スタートするスレッドを設定します。ThreadStart(メソッド名); です。
            this.ts = new ThreadStart(Infinity);
            this.thread = new Thread(ts);

            thread.Start();
        }

        void Infinity()
        {
            for(int i=0; true; i++)
            {
                this.Text = i.ToString();
            }
        }
    }
}


  なおデータベース操作時などにマルチスレッドを利用する場合はリソースの解放し忘れを特にご注意ください。また、マルチスレッドを多用するとリソースを極端に消耗しますので十分に導入の妥当性を検討してください。

Continue
ナビゲーション リンクのスキップトップページ > コードの破片から > マルチスレッドを利用する

2008年ですね。[1]
♥ 2008年01月01日 00:00:00

自由なスレ[3]
♥ 2007年09月22日 20:51:58

2007年ですね。[1]
♥ 2007年01月01日 00:00:00

こみゅぷらす発足[1]
♥ 2006年12月01日 12:01:23

TechED2006 日記[5]
♥ 2006年09月11日 18:44:51


RSS : FooPah!の更新情報
RSS : 掲示板全体の投稿情報
Copyright(C)2001-2008 FooPah!, All rights reserved.