スレッドの話

こんばんは。

今日は秋葉原の方に行ってきたため、恐ろしく疲れています。

そのため変な文章になっているかもしれません(笑)

ご了承ください( ;∀;)

あと、秋葉原で手に入れた戦利品なんかの話は気が向いたらしようと思います。

とは言っても、DTN-X601+地図データ入りのSDやDockケーブル10個セット 、SIMカッターなどですが。

ガジェットぽいのが増えたので、またしばらくは遊べそうです(笑)

 

さて、今回の主役となるスレッド(Thread)とは何でしょうか?

Wikipediaでは

スレッドthread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。

プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルタイマーを駆使してコーディングすることになる。また、複数プロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。

(スレッド (コンピュータ) - Wikipediaより)

ふむふむ、、、ん~CPUの話っぽいですけど。この通りです。(思考停止中...)

では、さっそく。

ステートメント

using System.Threading;

を追加します。

で、フォーム上にボタンとプロセスバーを設置。

プログラムは以下です。(てきとー)

Thread trd1;
 
private void button1_Click(object sender, EventArgs e)
{
    Control.CheckForIllegalCrossThreadCalls = false;
    trd1 = new Thread(new ThreadStart(progstart));
    trd1.Start();
 
}
private void progstart()
{
    for (int i = 0; i < 100; i++)
    {
        progressBar1.Value = i;
        Thread.Sleep(100);
    }
}

のようになります。

とりあえず。はい。

次回以降このThreadの話はもう少し詳しく触れていきますので、

今日のところはご容赦ください。

 

ではではー('ω')ノ