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

C#でプログラムを指定ミリ秒スリープさせる方法【Thread.Sleepの使い方】

C#プログラムを指定したミリ秒数だけスリープ(一時停止)させたい場合は、Thread.Sleep()メソッドを使用します。このメソッドは、現在実行中のスレッドを指定された時間だけ停止させるもので、マルチスレッド処理や処理間隔の制御によく使われます。

例えば、1000ミリ秒(1秒)スリープさせたい場合は、次のように記述します。

Thread.Sleep(1000);

引数には待機時間をミリ秒単位で指定します。1000ミリ秒=1秒となるため、5秒待ちたい場合は「5000」を指定してください。

サンプルコード

以下のコードでは、子スレッドを作成し、forループの各反復処理ごとに1000ミリ秒スリープするカウンターを実装しています。あわせて、ThreadAbortExceptionへの対処方法も確認できます。

using System;
using System.Threading;

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

                for (int counter = 0; counter <= 10; counter++) {
                    Thread.Sleep(1000);
                    Console.WriteLine(counter);
                }
                Console.WriteLine("Child Thread Completed");
            } catch (ThreadAbortException e) {
                Console.WriteLine("Thread Abort Exception");
            } finally {
                Console.WriteLine("Couldn't catch the Thread Exception");
            }
        }
        public 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();

            // メインスレッドをしばらく停止させる
            Thread.Sleep(5000);
        }
    }
}

この例では、メインスレッドが子スレッドを開始した後、自身も5000ミリ秒(5秒)スリープしています。そのため、出力にはカウンターの途中までしか表示されません。

実行結果

In Main: Creating the Child thread
Child thread starts
0
1
2
3
4
5
6
7
8

補足:Task.Delayとの使い分け

async/awaitによる非同期処理の中で待機を行いたい場合は、Thread.Sleep()の代わりにawait Task.Delay()を使用するのが推奨されます。Thread.Sleep()は呼び出し元のスレッドを完全にブロックしてしまうため、UIアプリケーションなどでは画面が固まる原因になります。一方、Task.Delay()はスレッドをブロックせずに待機できるため、応答性を保ったまま遅延処理を実現できます。

  1. iPhone・iPadアプリの作り方を徹底解説!初心者向けアプリ開発完全ガイド

    Appleは、初心者でもアプリ開発を始めやすい環境を整えています。開発環境「Xcode」、プログラミング言語「Swift」、そしてグラフィックス技術「Metal」などのツールのおかげで、今こそiPhoneやiPad向けのアプリやゲーム、さらにはApple Watch向けゲームの制作に挑戦する絶好のタイミングです。 自分でアプリやゲームのコードを書くのは大変な挑戦に思えるかもしれませんが、実際には想像ほど難しくありません。アプリ開発者やインディーゲーム開発者への道をサポートしてくれる学習リソースが豊富に存在します。 iPhone・iPadアプリ開発には多くの魅力があります。Webサイト制作とは異

  2. Apple Watchのカスタムウォッチフェイスを作成する方法【アプリ・画像編集の2つの手順】

    Apple Watchがこれほど人気を集めている理由の一つは、豊富なカスタマイズ性にあります。自分だけのオリジナルウォッチフェイスを作れば、あなたのApple Watchは世界に一つだけの存在になります。この記事では、Apple Watch用のカスタムウォッチフェイスの作り方と、作成したフェイスをアップロードして設定する方法を詳しく解説します。なぜApple Watchにカスタムウォッチフェイスを作るのかApple Watchには標準でも多くのカスタマイズオプションが用意されていますが、自分のニーズにぴったり合った体験を作りたいなら、独自のウォッチフェイスを作るのがおすすめです。また、既存のウ