Работа с переменной в разных потоках - C#

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

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

Всем здравствуйте. Есть у меня некая переменная, объявленная в начале класса(класс Form):
Листинг программы
  1. String text;
Она изменяется в отдельном потоке, и после того, как этот поток отрабатывается, вызывается некий метод

ThreadCompleted

, который должен выполнятся уже в основном потоке:
Листинг программы
  1. this.Invoke(new Action(() => ThreadCompleted()));
Но проблема в том, что эта переменная в методе ThreadCompleted() уже имеет значение null. Я так понимаю, что при присвоении переменной значения надо использовать оператор lock, но я им раньше не пользовался, так что прошу помоши киберфорумчан.

Решение задачи: «Работа с переменной в разных потоках»

textual
Листинг программы
  1. string myString;
  2.         private void Form1_Load(object sender, EventArgs e)
  3.         {
  4.             Action complete = () => MessageBox.Show(myString);
  5.             new Thread(_ =>
  6.             {
  7.                 myString = "456";
  8.                 Thread.Sleep(3000); // Делаем что-то;
  9.                 complete();
  10.             }).Start();
  11.         }

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


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

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

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

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

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

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