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

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

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

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

ThreadCompleted

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

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

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

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы