Как увеличить значение индикатора выполнения, нажав кнопку в WPF? - PullRequest
0 голосов
/ 16 марта 2020

в WPF, у меня есть индикатор выполнения, и я хочу увеличить значение этого индикатора после нажатия кнопки. я попытался создать экземпляр класса timer, когда нажата кнопка, и увеличить значение индикатора выполнения внутри метода обратного вызова таймера, но он не работает и выдает недопустимое исключение операции. вот код, который у меня есть:

public MainWindow()
{
    InitializeComponent();
}

private void btnProgress_Click(object sender, RoutedEventArgs e)
{
    Timer timer = new Timer(TimerCallback, null, 0, 100);
}

private void TimerCallback(Object o)
{
    progressBar.Value += 2;
}

1 Ответ

1 голос
/ 16 марта 2020

Вы пытаетесь обновить элемент управления пользовательского интерфейса из потока, не являющегося пользовательским интерфейсом. Легко исправить, изменив метод TimerCallback, как показано ниже.

private void TimerCallback(Object o)
{
    progressBar.Dispatcher.Invoke(() => progressBar.Value += 2, DispatcherPriority.Background));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...