C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のマルチスレッドとは何ですか?


C#では、System.Threading.Threadクラスはスレッドの操作に使用されます。マルチスレッドアプリケーションで個々のスレッドを作成してアクセスできます。プロセスで実行される最初のスレッドは、メインスレッドと呼ばれます。

C#プログラムが実行を開始すると、メインスレッドが自動的に作成されます。 Threadクラスを使用して作成されたスレッドは、メインスレッドの子スレッドと呼ばれます。

以下は、C#でスレッドを作成する方法を示す例です-

using System;
using System.Threading;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         Thread th = Thread.CurrentThread;
         th.Name = "MainThread";
         Console.WriteLine("This is {0}", th.Name);
         Console.ReadKey();
      }
   }
}

これは、C#でスレッドを管理する方法を示す別の例です-

using System;
using System.Threading;

namespace MultithreadingApplication {
   class ThreadCreationProgram {
      public static void CallToChildThread() {
         Console.WriteLine("Child thread starts");
         // the thread is paused for 5000 milliseconds
         int sleepfor = 5000;
         Console.WriteLine("Child Thread Paused for {0} seconds", sleepfor / 1000);
         Thread.Sleep(sleepfor);
         Console.WriteLine("Child thread resumes");
      }

      static void Main(string[] args) {
         ThreadStart childref = new ThreadStart(CallToChildThread);
         Console.WriteLine("In Main: Creating the Child thread");

         Thread childThread = new Thread(childref);
         childThread.Start();
         Console.ReadKey();
      }
   }
}

出力

In Main: Creating the Child thread
Child thread starts
Child Thread Paused for 5 seconds
Child thread resumes

  1. JavaでのSwingWorkerクラスの重要性は何ですか?

    SwingWorker クラスを使用すると、非同期を実行できます タスク ワーカースレッド(長時間実行タスクなど)で、イベントディスパッチスレッド(EDT )からSwingコンポーネントを更新します。 ) タスクの結果に基づきます。 Java1.6バージョンで導入されました。 SwingWorkerクラス java.swing.SwingWorker クラスはタスクワーカーであり、時間のかかるタスクをバックグラウンドで実行します。 SwingWorker インスタンスは3つのスレッドと相互作用します。現在 スレッド 、ワーカースレッド 、およびイベントディスパッチスレッド(E

  2. JavaでのSwingUtilitiesクラスの重要性は何ですか?

    Javaでは、Swingコンポーネントが画面に表示された後、それらはイベント処理スレッドと呼ばれる1つのスレッドでのみ操作できます。 。別のブロックにコードを記述し、このブロックにイベントへの参照を与えることができます 処理 スレッド 。 SwingUtilities クラスには、 invokeAndWait()という2つの重要な静的メソッドがあります。 およびinvokeLater() コードのブロックへの参照をイベントに配置するために使用します キュー 。 構文 public static void invokeAndWait(Runnable doRun) throws Interr