Thread.SpinWait(Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyebabkan utas menunggu berapa kali ditentukan oleh iterations
parameter .
public:
static void SpinWait(int iterations);
public static void SpinWait (int iterations);
static member SpinWait : int -> unit
Public Shared Sub SpinWait (iterations As Integer)
Parameter
- iterations
- Int32
Bilangan bulat bertanda tangan 32-bit yang menentukan berapa lama utas akan menunggu.
Keterangan
Metode SpinWait ini berguna untuk menerapkan kunci. Kelas dalam .NET Framework, seperti Monitor dan ReaderWriterLock, gunakan metode ini secara internal.
SpinWait pada dasarnya menempatkan prosesor ke dalam perulangan yang sangat ketat, dengan jumlah perulangan yang ditentukan oleh iterations
parameter . Oleh karena itu, durasi tunggu tergantung pada kecepatan prosesor.
Kontraskan ini dengan Sleep metode . Utas Sleep yang memanggil menghasilkan sisa irisan waktu prosesornya saat ini, bahkan jika interval yang ditentukan adalah nol. Menentukan interval bukan nol untuk Sleep menghapus utas dari pertimbangan oleh penjadwal utas hingga interval waktu berlalu.
SpinWait umumnya tidak berguna untuk aplikasi biasa. Dalam kebanyakan kasus, Anda harus menggunakan kelas sinkronisasi yang disediakan oleh .NET Framework; misalnya, panggilan Monitor.Enter atau pernyataan yang membungkus Monitor.Enter (lock
dalam C# atau SyncLock
di Visual Basic).
Perhatian
Dalam kasus yang jarang terjadi di mana menguntungkan untuk menghindari pengalihan konteks, seperti ketika Anda tahu bahwa perubahan status akan segera terjadi, lakukan panggilan ke SpinWait metode dalam perulangan Anda. Kode SpinWait yang dijalankan dirancang untuk mencegah masalah yang dapat terjadi pada komputer dengan beberapa prosesor. Misalnya, pada komputer dengan beberapa prosesor Intel yang menggunakan teknologi Hyper-Threading, SpinWait mencegah kelaparan prosesor dalam situasi tertentu.