C# Thread Sleep

王林
王林asal
2024-09-03 15:25:49797semak imbas

Benang yang sedang dilaksanakan pada masa ini boleh dijeda atau digantung buat sementara waktu untuk tempoh masa tertentu menggunakan kaedah dalam C# yang dipanggil kaedah Sleep() dan jumlah masa mesti dinyatakan dalam milisaat dan dihantar sebagai parameter kepada utas yang kita sedang cuba untuk menggantung atau dengan menggunakan sifat jangka masa di mana terdapat keistimewaan untuk menentukan masa dalam jam, minit dan saat supaya urutan itu boleh dijeda untuk masa yang lebih lama serta mengikut keperluan kita dan bukan hanya untuk milisaat.

Sintaks:

Thread.Sleep(Time_in_milliseconds);

Atau

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

Di mana instance_name ialah nama contoh kelas TimeSpan.

Menggunakan C# Thread Sleep

  • Apabila terdapat keperluan untuk menjeda pelaksanaan utas supaya utas lain boleh mengambil alih dan memulakan pelaksanaan, kami menggunakan kaedah yang dipanggil Sleep() kaedah.
  • Jumlah masa urutan perlu dijeda boleh ditentukan sama ada dalam milisaat dan dihantar sebagai parameter kepada kaedah Sleep() atau ia boleh ditentukan dalam jam, minit dan saat menggunakan sifat jangka masa.
  • ArgumentOutOfRangeException dilemparkan oleh kaedah Sleep() jika masa dalam milisaat berlalu sebagai parameter kepadanya adalah negatif.
  • ArgumentOutOfRangeException dilemparkan oleh kaedah Sleep() jika masa berlalu sebagai parameter kepada sifat rentang masa adalah negatif.
  • Jika masa dalam milisaat berlalu sebagai parameter kepada kaedah Sleep() ialah sifar, maka urutan lain dengan keutamaan yang sama yang sedia untuk dijalankan memulakan pelaksanaan.
  • Jika masa berlalu sebagai parameter kepada sifat jangka masa adalah sifar, maka urutan lain dengan keutamaan yang sama yang sedia untuk dijalankan memulakan pelaksanaan.

Contoh untuk Melaksanakan Tidur Benang dalam C#

Di bawah ialah contoh C#Thread Sleep:

Contoh #1

Program C# untuk menunjukkan kaedah Sleep() dengan masa dalam milisaat diluluskan sebagai parameter.

 Kod:

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");
}
}

Output:

C# Thread Sleep

Penjelasan: Dalam atur cara di atas, ruang nama yang dipanggil atur cara dicipta di dalamnya kaedah yang dipanggil kaedah sampel, yang menerima parameter dicipta di dalamnya yang mana benang yang beroperasi pada kaedah itu dijeda untuk masa tertentu dengan menggunakan kaedah Sleep(). Kemudian kelas yang dipanggil semakan dicipta di mana kaedah utama dipanggil di mana dua contoh benang dicipta dan kemudian memulakan pelaksanaannya pada kaedah sampel menggunakan kaedah Start(). Memandangkan kaedah Sleep() digunakan pada utas yang beroperasi pada kaedah pensampelan, utas tidak dilaksanakan secara berturut-turut.

Contoh #2

Program C# untuk menunjukkan kaedah Sleep() menggunakan sifat TimeSpan.

Kod:

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");
}
}

Output:

C# Thread Sleep

Penjelasan: Dalam atur cara di atas, ruang nama yang dipanggil atur cara dicipta di dalamnya kaedah yang dipanggil kaedah sampel yang menerima parameter dicipta di dalamnya yang mana benang yang beroperasi pada kaedah itu dijeda untuk sesuatu masa dengan menggunakan harta TimeSpan. Kemudian kelas yang dipanggil semakan dicipta di mana kaedah utama dipanggil di mana dua contoh benang dicipta dan kemudian memulakan pelaksanaannya pada kaedah sampel menggunakan kaedah Start(). Memandangkan kaedah Sleep() digunakan pada utas yang beroperasi pada kaedah pensampelan, utas tidak dilaksanakan dalam satu baris. Output ditunjukkan dalam syot kilat di atas.

Kesimpulan

Dalam tutorial ini, kami memahami konsep kaedah ThreadSleep dalam C# melalui takrifan, sintaks dan cara kerja kaedah ThreadSleep melalui contoh pengaturcaraan dan outputnya.

Artikel Disyorkan

Ini ialah panduan untuk C# Thread Sleep. Di sini kita membincangkan Pengenalan kepada C# Thread Sleep dan kerjanya bersama-sama dengan contoh dan Pelaksanaan Kodnya. Anda juga boleh membaca artikel cadangan kami yang lain untuk mengetahui lebih lanjut –

  1. Apakah Penjana Nombor Rawak dalam C#?
  2. Pembina Statik di Jawa | Bekerja | Aplikasi
  3. TextWriter dalam C# | Contoh
  4. Bagaimana untuk Bekerja Pembina Statik dalam C#?

Atas ialah kandungan terperinci C# Thread Sleep. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:C# Thread JoinArtikel seterusnya:C# Thread Join