CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 145

145

Chương 4: Tiểu trình, tiến trình, và sự đồng bộ

hai người dùng nhấn Enter,

Monitor.PulseAll

sẽ được gọi để giải phóng tất cả các tiểu trình

đang chờ còn lại.

using System;

using System.Threading;

public class ThreadSyncExample {

private static object consoleGate = new Object();

private static void DisplayMessage() {

Console.WriteLine("{0} : Thread started, acquiring lock...",

DateTime.Now.ToString("HH:mm:ss.ffff"));

// Thu lấy chốt trên đối tượng consoleGate.

try {

Monitor.Enter(consoleGate);

Console.WriteLine("{0} : {1}",

DateTime.Now.ToString("HH:mm:ss.ffff"),

"Acquired consoleGate lock, waiting...");

// Đợi cho đến khi Pulse được gọi trên đối tượng consoleGate.

Monitor.Wait(consoleGate);

Console.WriteLine("{0} : Thread pulsed, terminating.",

DateTime.Now.ToString("HH:mm:ss.ffff"));

} finally {

Monitor.Exit(consoleGate);

}

}

public static void Main() {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.