@libera

Вызов объекта из другого потока?

private void button2_Click(object sender, RoutedEventArgs e)
        {
            Thread myThread = new Thread(new ThreadStart(Count));
            myThread.Start(); // запускаем поток
            for (int i = 1; i < 200; i++)
            {
                
                label9.Content=(i * i);
                Thread.Sleep(300);
            }
        }
        public void Count()
        {
            for (int i = 1; i < 200; i++)
            {
                label9.Content=(i * i); // ошибка тут
                Thread.Sleep(400);
            }
        }

Ошибка, Вызываемый поток не может получить доступ к объекты из другого потока.

Как решить данную проблему?
И что делать, если у меня в другом потоке в 5-10 объектам должен обращаться.
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ответы на вопрос 2
@ar4ebaldello
public void Count()
{
    for (int i = 1; i < 200; i++)
    {
        int local = i * i;
        Dispatcher.Invoke(()=>label9.Content = local);
        Thread.Sleep(400);
    }
}
Ответ написан
Комментировать
AnnTHony
@AnnTHony
Интроверт
И что делать, если у меня в другом потоке в 5-10 объектам должен обращаться.


Читать про работу с потоками?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы