В WPF безопасен ли поток в пользовательском интерфейсе метода dispatcher.begininvoke? - PullRequest
5 голосов
/ 12 сентября 2010

У меня есть приложение WPF, которое использует многопоточность. Мне любопытно узнать, считается ли вызов в потоке пользовательского интерфейса с помощью метода Dispatcher.BeginInvoke () поточно-ориентированным? Обычно я использовал бы оператор блокировки, чтобы убедиться, что только один поток может получить доступ к переменной. Будет ли следующее приложение потокобезопасным в приложении WPF?

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

1 Ответ

6 голосов
/ 12 сентября 2010

Метод Dispatcher.BeginInvoke будет запускать свой обратный вызов в потоке Dispatcher (обычно в потоке пользовательского интерфейса, если у вас нет нескольких диспетчеров)

Поэтому, если вы используете только counterпеременная в потоке пользовательского интерфейса, у вас не возникнет проблем с потоками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...