2010-09-12 27 views
5

Tôi có một ứng dụng WPF sử dụng một số luồng đa luồng. Tôi tò mò muốn biết nếu gọi vào thread UI bằng cách sử dụng phương thức Dispatcher.BeginInvoke() xem xét thread-safe? Thông thường tôi sẽ sử dụng lệnh khóa để đảm bảo chỉ có một luồng có thể truy cập một biến. Sau đây có phải là chủ đề an toàn trong ứng dụng WPF không?Trong WPF là thread thread dispatcher.begininvoke chủ đề an toàn?

this.Dispatcher.BeginInvoke(() => 
{ 
    _counter ++; 
}); 

Trả lời

6

Các Dispatcher.BeginInvoke method sẽ chạy callback của nó trên thread Dispatcher (typcially thread UI, trừ khi bạn có nhiều Dispatchers)

Do đó, nếu bạn chỉ sử dụng counter biến trên thread UI, bạn sẽ có không có vấn đề về luồng.

Các vấn đề liên quan