Работа с переменной в разных потоках - C#
Формулировка задачи:
Всем здравствуйте.
Есть у меня некая переменная, объявленная в начале класса(класс Form):
Она изменяется в отдельном потоке, и после того, как этот поток отрабатывается, вызывается некий метод Но проблема в том, что эта переменная в методе ThreadCompleted() уже имеет значение null. Я так понимаю, что при присвоении переменной значения надо использовать оператор lock, но я им раньше не пользовался, так что прошу помоши киберфорумчан.
String text;
ThreadCompleted
, который должен выполнятся уже в основном потоке:this.Invoke(new Action(() => ThreadCompleted()));
Решение задачи: «Работа с переменной в разных потоках»
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();
}