Use ThreadPool : ThreadPool « Thread « C# / CSharp Tutorial






using System;
using System.Threading;

class MainClass
{
  public static ManualResetEvent MyManualEvent = new ManualResetEvent(false);
  public static AutoResetEvent MyAutoEvent = new AutoResetEvent(false);

  static void Main(string[] args)
  {
    ThreadPool.QueueUserWorkItem(new WaitCallback(DoBackgroundWorkManual));
    MyManualEvent.WaitOne();
    MyManualEvent.Reset();
    ThreadPool.QueueUserWorkItem(new WaitCallback(DoBackgroundWorkAuto));
    MyAutoEvent.WaitOne();
  }
  public static void DoBackgroundWorkManual(Object state)
  {
    Console.WriteLine("Thread 1");
    MyManualEvent.Set();
  }
  public static void DoBackgroundWorkAuto(Object state)
  {
    Console.WriteLine("Thread 1");
    MyAutoEvent.Set();
  }
}
Thread 1
Thread 1








20.28.ThreadPool
20.28.1.Thread Pool Example
20.28.2.Use ThreadPool
20.28.3.Using the thread pool and no arguments
20.28.4.Using the thread pool and providing an argument
20.28.5.Use ThreadPool to implement a hello server
20.28.6.Use the system thread pool
20.28.7.Registering wait callbacks for events
20.28.8.Available worker/IO threads
20.28.9.Max worker/IO threads in a ThreadPool
20.28.10.Min worker/IO threads in a ThreadPool
20.28.11.Scheduling work to occur on the thread-pool
20.28.12.ThreadPool Demo
20.28.13.Using ThreadPool Instead of Instantiating Threads Explicitly
20.28.14.Queuing a task for execution by ThreadPool threads, with the RegisterWaitForSingleObject method.
20.28.15.QueueUserWorkItem and RegisterWaitForSingleObject: Queue a task, represented by the ThreadProc method, using the QueueUserWorkItem method.
20.28.16.Canceling a queued task with RegisteredWaitHandle.
20.28.17.Use the QueueUserWorkItem method to queue a task and supply the data for the task.