Недопустимая межпоточная операция: доступ к текстовому полю элемента управления осуществляется из потока, отличного от пC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Недопустимая межпоточная операция: доступ к текстовому полю элемента управления осуществляется из потока, отличного от п

Сообщение Anonymous »


Мне нужна помощь. Я начал с C # и еще не очень знаком с обработкой событий и многопоточностью. Как новичок, с течением времени и с течением времени я хотел бы узнать больше об этих сложных темах и улучшить их, и надеюсь, что все вы здесь сможете мне помочь.

Я столкнулся с проблемой: «Недействительная межпоточная операция: элемент управления «текстовое поле с именем stackStatus» доступен из потока, отличного от потока, в котором он был создан». Я пытался устранить неполадки весь день, но безуспешно. Я застрял. :-( Программа попадает в исключение и не может продолжать бесперебойную работу.

Я прочитал следующие темы и попробовал кое-что, но, похоже, мне все еще чего-то не хватает. Буду признателен, если кто-нибудь сможет мне помочь. Спасибо.

Недопустимая межпоточная операция: доступ к элементу управления осуществляется из потока, отличного от того, в котором он был создан

Недопустимая межпоточная операция: доступ к элементу управления textBox1 осуществляется из потока, отличного от потока, в котором он был создан

Вот большая часть кода:
Private void createCloud_Click(отправитель объекта, EventArgs e) { СоздатьОблако(); //запускаем метод создания stackStatus.Text = "Создание стека..."; //обновляет текстовое поле статуса облака стекСтатус.Обновить(); Курсор.Текущий = Курсор.ОжиданиеКурсора; // переводим курсор в состояние ожидания Start_Describestack(); //вызов метода описания, чтобы узнать статус процесса создания облака Задача.Задержка(12000); // ждем 12 секунд, если не готовы Start_Describestack(); // снова вызываем метод описания, чтобы узнать статус процесса создания облака Курсор.Текущий = Курсоры.По умолчанию; // ставим курсор на ожидание описать события(); // вызываем метод, чтобы получить все данные о событиях создания облака и опубликовать их в datagridview } частная пустота Start_Describestack() { //метод, использующий таймер для вызова _timer = новый System.Timers.Timer(15000); _timer.Elapsed += новый ElapsedEventHandler(describeStack); _timer.Enabled = правда; } делегировать недействительным описатьStackCallBack (отправитель объекта, ElapsedEventArgs e); частная пустота описатьStack (отправитель объекта, ElapsedEventArgs e) { //этот метод выполняет вызовы API через CloudClient для описания стека //здесь «Недопустимая межпоточная операция: доступ к элементу управления stackStatus осуществляется из потока, отличного от потока, в котором он был создан» вар клиент = новый облачный клиент (); вар request2 = новый StacksRequest(); request2.Cloudstackname = stackid; пытаться { вар ответ = client.DescribeCloudStacks(request2); foreach (стек var в ответе.Stacks) { //что-то здесь не так, но я не знаю, как это исправить. Пожалуйста помоги если (this.stackStatus.InvokeRequired) { описатьStackCallBack d = новый описатьStackCallBack(describeStack); this.Invoke(d, новый объект[] {отправитель, е}); стекСтатус.Обновить(); описать события(); } еще { stackStatus.Text = stack.StackStatus; стекСтатус.Обновить(); описать события(); } } } поймать (исключение) { если (this.stackStatus.InvokeRequired) { описатьStackCallBack d = новый описатьStackCallBack(describeStack); this.Invoke(d, новый объект[] {отправитель, е}); stackStatus.Text = "Стек не найден/удален"; } еще { stackStatus.Text = "Стек не найден/удален"; } } описать события(); } частная пустота описать события() { вар новыйклиент = новый облачный клиент(); вар request3 = новый eventrequest(); request3.Cloudstackname = stackid; пытаться { вар ответ = newclient.eventstack(request3); dataGridView3.Rows.Clear(); foreach (события var в ответе.sevents) { dataGridView3.Rows.Add(events.Timestamp,events.ResourceStatus,events.ResourceType); } } поймать (исключение) { dataGridView3.Rows.Clear(); MessageBox.Show("Стек не готов!"); } dataGridView3.Обновить(); }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»