2010-06-23 40 views
8

Tôi chỉ muốn đảm bảo rằng tôi hiểu điều gì đó ở đây. Nếu tôi có khóa với Monitor.Enter hoặc lock tôi có cần gọi số Pulse trước khi phát hành khóa không?Mục đích của Monitor.Pulse

Monitor.Enter 

Monitor.Pulse // Is that neccessary? 

Monitor.Exit 

Tôi đã luôn luôn dẫn dắt để tin rằng một cuộc gọi Monitor.Exit sẽ mặc nhiên gọi Monitor.Pulse. Điều đó có đúng không?

Tôi không chắc chắn khi nào bạn sẽ sử dụng Pulse. Đó là điều gây ra sự nhầm lẫn.

Trả lời

10

Không, bạn không cần phải gọi số Pulse ... nhưng nó cũng sẽ không được thực hiện tự động khi bạn thoát.

PulsePulseAll được sử dụng kết hợp với Wait cho mục đích báo hiệu.

Xem nửa sau của this page để biết thêm chi tiết (bỏ qua bit bế tắc, về cơ bản :)