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); //ミリ秒指定