Я использую wpf, на моем интерфейсе есть кнопка.
когда пользователь щелкает его, у меня есть цикл for, который запускает новый метод в новом потоке с помощью autoresetevent.
в этом методе в этом новом потоке, я использую метку, назовем ее lblStatus.Я хочу обновить этот ярлык в этой теме, который не на пользовательском интерфейсе.используя wpf, я должен использовать Dispatcher.Invoke.
вот пример моего кода:
Thread thread= new Thread(StartLooking);
thread.Start();
_waitHandle.WaitOne();
private void StartLooking(object value)
{
if (lblStatus.Dispatcher.Thread == Thread.CurrentThread)
{
lblStatus.Content = "Scanning>...";
}
else
{
lblStatus.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() => lblStatus.Content = "Scanning>>>>>"));
}
_waitHandle.Set();
}
программа просто останавливается здесь.он не меняет содержимое метки, он возвращается к моему интерфейсу, но блокирует его.
Я также пробовал
lblStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new LblStatusThreadCheck(lblStatusThreadCheck), "Scanning...");
, но это также не работает.есть идеи?