スレッドは独立して、特定のプログラムを実行するための仮想プロセスと考えられています。
スレッドを作成するには#C 1.使用
使用してシステムを。 使用してSystem.Threadingを。// 3 名前空間MutiThreadDemo { クラスプログラム { 静的な 無効メイン(文字列[] argsを) {
// 5 スレッドt = 新しいスレッド(PrintNumber)。 t.Start(); PrintNumber(); Console.ReadLine(); } // 4 静的 ボイドPrintNumber() { Console.WriteLineを(" 開始... " )。 ために(int型 i = 1 ; iが< 10 ; iが++ ) { Console.WriteLineを(I)。 } } } }
上記のコードでは、ステップ4は、メインスレッドと新しく作成されたスレッドを使用することであるメソッドPrintNumberを、定義します。
我々は、スレッド、インスタンス、またはParameterizedThreadStart ThreadStart手数料を構築すると、コンストラクタに渡されます。
私たちは、実行中の別のスレッドでメソッド名を指定する必要があり、そしてC#コンパイラは、バックグラウンドでこれらのオブジェクトを作成します。
結果:クロス1から10まで2つの乱数出力の範囲。これは、メインスレッドと他のスレッドながらPringNumber方法を示します。(10桁のランダムなクロス明白な場合は、試してみる100まで上昇させることができます)
2.一時停止スレッド
ここでは、オペレーティング・システム・リソースを消費することなく、いくつかの時間のためのスレッドを待機させる方法を示しています。
使用してシステムを。 使用してSystem.Threadingを。 名前空間MutiThreadDemo { クラスThreadSleep { 静的 ボイドメイン(文字列[]引数) { スレッドt = 新しいスレッド(PrintNumbersWithDelay)。 t.Start(); PrintNumbers(); Console.ReadLine(); } 静的 ボイドPrintNumbers() { Console.WriteLineを(" 開始... " )。 以下のための(int型I = 0 ; I < 10 ; 私は++ ) { Console.WriteLineを(I)。 } } 静的 ボイドPrintNumbersWithDelay() { Console.WriteLineを(" 開始... " )。 以下のために(int型 i = 0 ; iは< 10 ; iは++ ) { のThread.sleep(TimeSpan.FromSeconds( 2 ))。 Console.WriteLineを(I); } } } }
PrintNumbersWithDeplay法と呼ばれる方法をのThread.sleep入社。これは、コードが前に任意のデジタルプリントに実行されるスレッドは、指定した時間(ここでは2秒)を待ちますが発生します。
3.スレッドの待機
ここでは、しますプログラムは、プログラムが終了し、別の計算を待つようにする方法をお見せして、あなたのコード内のスレッドの結果を使用します。
計算はそれが取る特定の時間を知らないので、使用のThread.sleepは、動作しません。
使用してシステムを。 使用してSystem.Threadingを。 名前空間MutiThreadDemo { クラスThread_Join { 静的な 無効メイン(文字列[] argsを) { Console.WriteLineを(" ...開始" ); スレッドt = 新しいスレッド(PrintNumbersWithDeplay)。 t.Start(); t.Join(); Console.WriteLineを( " スレッドは完了します" ); Console.ReadLine(); } 静的 無効PrintNumbersWithDeplay() { Console.WriteLineを(" 開始... " ); 以下のために(int型 i = 1 ; iは< 10 ; iは++ ) { のThread.sleep(TimeSpan.FromSeconds(2 ))。 Console.WriteLineを(I); } } } }
結果:
プログラムが実行されると、それが2秒を待つように各番号を印刷する前に、デジタル印刷に長いスレッドを立ち上げました。
しかし、我々は、スレッドtが完了するまで、私たちが待つことを可能にするメインプログラム、中t.Joinメソッドを呼び出します。
糸Tが終了すると、メインプログラムは引き続き実行されます。
この技術は、2つのスレッド間の段階に同期させることができます。
4.スレッドを終了
...