Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
instructor

Доступ к элементу управления не из того потока, в котором он был создан

30.11.2011, 22:06. Показов 5117. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
При клике по кнопкам создаются новые формы, хочу сделать чтобы по таймеру в этих формах происходили изменения, но выскакивает такая ошибка
"Недопустимая операция в нескольких потоках: попытка доступа к элементу управления '9.txt' не из того потока, в котором он был создан."
Вот и не пойму в чем проблема и как её можно исправить
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Imports System.Timers
Public Class Form1
    Private Shared aTimer As System.Timers.Timer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Files() As String = IO.Directory.GetFiles("D:\processed\2011\11\27\", "*.txt", IO.SearchOption.TopDirectoryOnly)
        For x = 0 To UBound(Files)
            Dim But As New Button
            But.Name = "But" & x   'Задаём имя кнопки
            But.Size = New Size(100, 30) 'Размеры
            But.Tag = Files(x) ' добавляем название кнопки
            But.Location = New Point(50, (30 * x)) 'Расположение кнопки на форме
            But.Text = Files(x)
            'добавляем запуск обработчика нажатия кнопки
            AddHandler But.Click, AddressOf RunProgramButtonClick
            Me.Controls.Add(But) 'Добавляем созданный элемент на форму
            Me.ClientSize = New System.Drawing.Size(200, (30 * (x + 1)))
        Next x
        aTimer = New System.Timers.Timer(10000)
        AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
        aTimer.Interval = 2000
        aTimer.Enabled = True
    End Sub
    Private Sub RunProgramButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim b As Button = sender
        Dim frm As New Form
        frm.Visible = True
        frm.Name = b.Text
        frm.Text = b.Text
    End Sub
    Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
        For Each frm In Application.OpenForms
            If frm.name <> "Form1" Then frm.Text = "1"
        Next
    End Sub
End Class
Добавлено через 41 минуту
Все нашел, заменил это
VB.NET
1
If frm.name <> "Form1" Then frm.Text = "1"
на это
VB.NET
1
If frm.name <> "Form1" Then frm.Invoke(Sub() frm.text = "1")
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2011, 22:06
Ответы с готовыми решениями:

BackgroundWorker. Как получить доступ к элементу управления не из того потока, в котором он был создан
Пробую разместить парсер - ссылка в BackgroundWorker. Результат парсинга должен попадать из &quot;ParserWorker.cs&quot;.Worker() по...

Попытка доступа к элементу управления не из того потока, в котором он был создан
Здравствуйте, уважаемые знатоки. Помогите, плиз, с задачкой. Иначе я сломаю комп до того, как он сломает мне мозг ))) Почему-то...

Попытка доступа к элементу управления 'label2' не из того потока, в котором он был создан
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

2
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
30.11.2011, 23:26
Раздел не тот.
Сюда надо.
0
 Аватар для _Лёша_
388 / 377 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
04.12.2011, 21:50
VB.NET
1
2
3
4
5
If 9.txt.InvokeRequired Then
9.txt.Invoke(New Threading.ThreadStart(AddressOf DoSomeActions))
Else
DoSomeActions()
End If
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2011, 21:50
Помогаю со студенческими работами здесь

Com port попытка доступа к элементу управления не из того потока, в котором он был создан
попытка доступа к элементу управления 'label2' не из того потока, в котором он был создан. Собственно, впытаюсь получить значения с ком...

Попытка доступа к элементу управления Label1 не из того потока в котором он был создан
Здравствуйте, у меня проблема, дело в том что при запуске генераций клеток выдает подобное сообщение &quot;недопустимая операция в...

Ошибка доступ к элементу ProgressBar не из того потока, в котором он был создан
Здравствуйте друзья. Cross-thread operation not valid: Control 'progressBar1' accessed from a thread other than the thread it was created...

Многопоточность. Попытка доступа к элементу управления 'listBox1' не из того потока, в котором он был создан
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Ошибка в потоках: Попытка доступа к элементу управления не из того потока, в котором он был создан
Нужно сделать счетчик, и при каждом выполнении потока изменять значение label2.Text


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru