C# スレッド スリープ

王林
王林オリジナル
2024-09-03 15:25:49755ブラウズ

現在実行中のスレッドは、C# の Sleep() メソッドと呼ばれるメソッドを使用して、指定した時間だけ一時停止または一時停止できます。その時間はミリ秒単位で指定し、パラメータとしてスレッドに渡す必要があります。スレッドをミリ秒だけでなく必要に応じて長時間一時停止できるように、時間を時、分、秒で指定する特権がある timespan プロパティを使用して一時停止しようとしています。

構文:

Thread.Sleep(Time_in_milliseconds);

または

TimeSpaninstance_name = new TimeSpan(Time_in_hours_minutes_seconds);
Thread.Sleep(instance_name);

ここで、instance_name は TimeSpan クラスのインスタンスの名前です。

C# スレッド スリープの動作

  • 他のスレッドが引き継いで実行を開始できるように、スレッドの実行を一時停止する必要がある場合は常に、Sleep() メソッドと呼ばれるメソッドを使用します。
  • スレッドを一時停止する必要がある時間は、ミリ秒単位で指定してパラメータとして Sleep() メソッドに渡すことも、timespan プロパティを使用して時間、分、秒単位で指定することもできます。
  • パラメータとして渡されたミリ秒単位の時間が負の場合、Sleep() メソッドによって ArgumentOutOfRangeException がスローされます。
  • timespan プロパティにパラメータとして渡された時間が負の場合、Sleep() メソッドによって ArgumentOutOfRangeException がスローされます。
  • パラメータとして Sleep() メソッドに渡されたミリ秒単位の時間がゼロの場合、実行準備ができている同じ優先順位の他のスレッドが実行を開始します。
  • timespan プロパティにパラメータとして渡された時間がゼロの場合、実行の準備ができている同じ優先順位の他のスレッドが実行を開始します。

C# でスレッド スリープを実装する例

以下は C#Thread Sleep の例です:

例 #1

パラメータとして渡されるミリ秒単位の時間を使用して Sleep() メソッドをデモする C# プログラム。

コード:

using System;
using System.Threading;
//a class called program is created
public class program
{
//a method called samplemethod which accepts a parameter is created
public void samplemethod(object str)
{
for (int z = 0; z < 5; z++)
{
Console.WriteLine("The thread that is executing is {0}", str);
Thread.Sleep(200);
}
}
}
//a class called check is created
public class check
{
//main method is called
public static void Main()
{
//two string variables are created which are passed as parameter previously created method in program class
string Iamthread1 = null;
string Iamthread2 = null;
//an instance of the program class is created
program d = new program();
Thread firstthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
Thread secondthread=new Thread(new ParameterizedThreadStart(d.samplemethod));
firstthread.Start("Iamthread1");
secondthread.Start("Iamthread2");
}
}

出力:

C# スレッド スリープ

説明: 上記のプログラムでは、プログラムと呼ばれる名前空間が作成され、その中にパラメータを受け取るサンプル メソッドと呼ばれるメソッドが作成され、メソッド上で動作するスレッドがその中で一時停止されます。 Sleep()メソッドを使用して一定時間。次に、check というクラスが作成され、その中で main メソッドが呼び出され、スレッドの 2 つのインスタンスが作成され、Start() メソッドを使用してサンプル メソッドの実行が開始されます。サンプリングメソッドで動作するスレッドではSleep()メソッドを使用するため、スレッドが連続して実行されることはありません。

例 #2

TimeSpan プロパティを使用して Sleep() メソッドをデモする C# プログラム。

コード:

using System;
using System.Threading;
//a class called program is created
public class program
{
//a method called samplemethod which accepts a parameter is created
public void samplemethod(object str)
{
//TimeSpan property is used to specify the duration of time for which the thread must be paused
TimeSpan timeout = new TimeSpan(0, 0, 3);
for (int z = 0; z < 3; z++)
{
Console.WriteLine("The thread that is executing is {0}", str);
Thread.Sleep(timeout);
}
}
}
//a class called check is created
public class check
{
//main method is called
public static void Main()
{
//two string variables are created which are passed as parameter previously created method in program class
string Iamthread1 = null;
string Iamthread2 = null;
//an instance of the program class is created
program d = new program();
Thread firstthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
Thread secondthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
firstthread.Start("Iamthread1");
secondthread.Start("Iamthread2");
}
}

出力:

C# スレッド スリープ

説明: 上記のプログラムでは、プログラムという名前空間が作成され、その中にパラメーターを受け取るサンプルメソッドというメソッドが作成され、そのメソッド上で動作するスレッドが一定時間一時停止されます。 TimeSpan プロパティを使用して時間を設定します。次に、check というクラスが作成され、その中で main メソッドが呼び出され、スレッドの 2 つのインスタンスが作成され、Start() メソッドを使用してサンプル メソッドの実行が開始されます。 Sleep()メソッドはサンプリングメソッドで動作するスレッド上で使用されるため、スレッドが連続して実行されることはありません。出力は上のスナップショットに示されています。

結論

このチュートリアルでは、プログラミング例とその出力を通じて、ThreadSleep メソッドの定義、構文、動作を通じて、C# の ThreadSleep メソッドの概念を理解します。

おすすめ記事

これは C# スレッド スリープのガイドです。ここでは、C# スレッド スリープの概要とその動作について、例とコード実装とともに説明します。詳細については、他の推奨記事を参照することもできます –

  1. C# の乱数ジェネレーターとは何ですか?
  2. Java の静的コンストラクター |働く |アプリケーション
  3. C# の TextWriter |例
  4. C# で静的コンストラクターを動作させるには?

以上がC# スレッド スリープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# スレッド結合次の記事:C# スレッド結合