首頁  >  文章  >  後端開發  >  C# 線程睡眠

C# 線程睡眠

王林
王林原創
2024-09-03 15:25:49718瀏覽

目前正在執行的執行緒可以使用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

C# 程式示範 Sleep() 方法,並以毫秒為單位傳遞時間作為參數。

 代碼:

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 方法,在該方法中建立執行緒的兩個實例,然後使用 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 方法,在該方法中建立執行緒的兩個實例,然後使用 Start() 方法開始在範例方法上執行它們。由於在採樣方法上運行的執行緒上使用了 Sleep() 方法,因此執行緒不會連續執行。輸出如上面的快照所示。

結論

在本教程中,我們透過程式設計範例及其輸出了解 ThreadSleep 方法的定義、語法和工作原理,了解 C# 中 ThreadSleep 方法的概念。

推薦文章

這是 C# 線程睡眠指南。在這裡,我們討論 C# 執行緒睡眠簡介及其工作原理以及範例和程式碼實作。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –

  1. C# 中的隨機數產生器是什麼?
  2. Java 中的靜態建構子 |工作|應用
  3. C# 中的 TextWriter |範例
  4. 如何在 C# 中使用靜態建構子?

以上是C# 線程睡眠的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 線程連接下一篇:C# 線程連接