指定した時間だけ現在のスレッドを停止するには、Thread.Sleepメソッドを使います。
Windowsフォームアプリケーションのメインスレッド(UIスレッド)を停止した時は、停止している間、フリーズしたように一切の操作ができなくなります。
'一秒間(1000ミリ秒)停止する
System.Threading.Thread.Sleep(1000)
//一秒間(1000ミリ秒)停止する
System.Threading.Thread.Sleep(1000);
指定した時間現在のスレッドを停止するメソッドに、Thread.SpinWaitメソッドというものもあります。Thread.SpinWaitメソッドは、Thread.Sleepメソッドのように時間を秒単位で指定するのではなく、ループカウント(ループする回数)で指定します。そのため、同じ数値を指定しても、待機する時間はCPUによって変わります。
Thread.SpinWaitメソッドは、Thread.Sleepメソッドと違い、ループすることで待機しますので、CPUをほぼ100%占有します。また、Thread.Sleepメソッドを呼び出した場合は、残りのタイムスライスを放棄して、実行の準備ができている他のスレッドに処理を回しますが、Thread.SpinWaitメソッドの場合はそうしません。
Thread.SpinWaitメソッドはスレッドの同期のために内部で使用されているようですが、通常は私たちが使用する機会はないでしょう。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。