Недопустимый межпотоковый доступ при вызове MessageBox - C#

Узнай цену своей работы

Формулировка задачи:

мне нужно чтобы при работе потока что он(помимо тех действий которые он сам выполняет) вызывал messagebox периодически т.е. создаю я поток
Листинг программы
  1. Thread s =new Thread(SendWeatherRequestThread);
  2. s.Start();
а поток во время работы каждые 15 секунд(интервал больше вообще будет но для теста пойдет) перезагружает информацию с сервера.
Листинг программы
  1. public void SendWeatherRequestThread()
  2. {
  3. while (true)
  4. {
  5. Thread.Sleep(15000);
  6. MessageBox.Show("Try to reload data!");
  7. .....какие -то действия
  8. }
  9. }
но при такой записи у меня выкидывает исключение "недопустимый межпотоковый доступ". получается вызов messagebox'а нужно в отдельный поток выкидывать?
вот еще одна ошибка добавилось у меня в функции потока есть такой вызов
Листинг программы
  1. string settings = HtmlPage.Window.Invoke("ReadFile", new object[] {path1}) as string;
однако при работе у меня выбросило исключение что "может выполняться только в потоке пользовательского интерфейса" т.е. я не могу вызываться jscript функции из html файла в потоках?

Решение задачи: «Недопустимый межпотоковый доступ при вызове MessageBox»

textual
Листинг программы
  1. if (!this.Dispatcher.CheckAccess())
  2.                     this.Dispatcher.BeginInvoke(new Action(() => MessageBox.Show("Try to reload data!")));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы