Я хотел бы знать, какой самый лучший / самый безопасный способ получить доступ к основному потоку пользовательского интерфейса из другого потока.
Должен ли я использовать Dispatcher.BeginInvoke
?
_cancelationTokenSource = new CancellationTokenSource();
new Task(() =>
{
Dispatcher.BeginInvoke((Action)(() =>
{
//process data
}));
}, _cancelationTokenSource.Token, TaskCreationOptions.LongRunning).Start();
или долженя использую Dispatcher.Invoke
?
_cancelationTokenSource = new CancellationTokenSource();
new Task(() =>
{
Dispatcher.Invoke((Action)(() =>
{
//process data
}));
}, _cancelationTokenSource.Token, TaskCreationOptions.LongRunning).Start();
В чем основное различие между методами 2 Invoke
?
Как повлияет производительность на использование BeginInvoke
и Invoke
?
Самое главное, я бы хотел, чтобы мой пользовательский интерфейс реагировал.