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

C#でThread.Sleepメソッドを使ってスレッドを一時停止する方法

C#のThread.Sleepメソッドは、スレッドの処理を指定した時間だけ一時停止(休止)させたい場合に使用します。処理に待ち時間を設けたいときや、タイミングを調整したいときなどに便利なメソッドです。

基本的な使い方

Thread.Sleepメソッドには、一時停止させたい時間をミリ秒単位で指定します。たとえば、2秒間スレッドを停止させたい場合は、次のように記述します。

int sleepfor = 2000; // 2000ミリ秒 = 2秒
Thread.Sleep(sleepfor);

実装例

以下のコードは、子スレッドを作成し、その中でThread.Sleepメソッドを使ってスレッドを一時停止させるサンプルプログラムです。実際に動かして挙動を確認してみましょう。

using System;
using System.Threading;

namespace MyApplication {
    class ThreadCreationProgram {
        public static void CallToChildThread() {
            Console.WriteLine("Child thread starts");

            int sleepfor = 2000;

            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 2 seconds
Child thread resumes

コードの解説

このプログラムでは、まずMainメソッド内でThreadStartデリゲートを使って子スレッドを作成し、Start()メソッドで起動しています。

子スレッド側のCallToChildThreadメソッドでは、「Child thread starts」を出力した後、Thread.Sleep(2000)によって2秒間スレッドが一時停止します。その後、停止が解除されると「Child thread resumes」が出力され、処理が再開されます。

このように、Thread.Sleepメソッドを使うことで、スレッドの処理を簡単に指定時間だけ中断することができます。なお、引数に渡す値はミリ秒単位である点に注意してください。

  1. AndroidでThread.sleep()を使用する方法を徹底解説!基本の仕組みと実装手順

    スレッド(Thread)とは? 実装例に入る前に、まずスレッドについて理解しておきましょう。スレッドとは軽量なサブプロセスのことで、UIの動作を妨げることなくバックグラウンド処理を実行するために使用されます。 本記事では、AndroidアプリでThread.sleep()を使って処理を一時停止させる方法を、具体的なサンプルコードとともにわかりやすく解説します。 手順1:新規プロジェクトを作成する Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成してください。 手順2:レイアウ

  2. Rubyのエイリアス(別名定義)完全ガイド:aliasキーワードとalias_methodの違い

    Rubyでは、既存のメソッドに別名(エイリアス)を付ける方法が2つあります。 alias(キーワード) alias_method(メソッド) どちらも同じ目的で使えますが、挙動が微妙に異なるため、初心者にとって混乱しやすいトピックです。 本記事では、両者の違いを詳しく掘り下げ、しっかりと理解できるように解説していきます。 aliasキーワードとは まずはaliasから見ていきましょう。aliasはRubyのキーワードの一つです(ifやdef、classなどと同じ扱いです)。 基本的な書き方は以下の通りです。 alias print_something puts print_someth