C#プチリファレンス

C# スレッド

スレッドは、異なる処理を並列で行いたい時に使います。
並列で処理を行うため、非同期で実行されます。

非同期実行

非同期実行のサンプルです。
①を実行すると、②が非同期で処理されて処理が終わると③が呼び出されます。

①呼び出し元
private void button1_Click(object sender, EventArgs e)
{
  Console.WriteLine("Start1");

  HogeDelegate d = new HogeDelegate(Hoge);
  d.BeginInvoke(new AsyncCallback(HogeCallBack), d);

  Console.WriteLine("Start2");
}
②非同期で実行されるメソッド
using System.Threading;

private void Hoge()
{
  Console.WriteLine("Hoge1");
  Thread.Sleep(3000);  // 3秒待つ
  Console.WriteLine("Hoge2");
}
③非同期で実行されるメソッド終了時に呼ばれるメソッド
private void HogeCallBack(IAsyncResult a)
{
  Console.WriteLine("HogeCallBack");
}
【実行結果】
Start1 Start2 Hoge1 Hoge2 HogeCallBack

処理を止める

例)3秒間スリープする
using System.Threading;

Thread.Sleep(3000);  //ミリ秒指定
ToTop