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

Вызов события из потока: ошибка доступа к элементу управления

03.03.2015, 14:49. Показов 926. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Смысл задачи следующий:

В отдельном потоке в цикле проверяется пинг до удаленного хоста
в случае изменения состояния изменяется переменная для которой создано событие on_change.
Соответственно в этом событии я обрабатываю, то или иное действие, в зависимости от значения переменной

Событие сделано по этому примеру

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
' Класс
  Public Class ConctionStateType (Of T)
    Private pvalue As T
    Friend Event OnChange(ByVal sender As Object, ByVal e As System.EventArgs)
    Friend Property Value() As T
        Get
            Return pvalue
        End Get
 
        Set(ByVal value As T)
            pvalue = value
            RaiseEvent OnChange(Me, New System.EventArgs)
        End Set
    End Property
  End Class
 
        Dim WithEvents ConnectionAbort As New ConctionStateType(Of boolean)
 
        ' Изменение флага обрыв связи
        Private Sub ConnectionAbort_OnChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles ConnectionAbort.OnChange
        
        If Not(LoadProgram) then
            If ConnectionAbort.Value then
              tbxDataSourLog.text="ОК"
            Else
              tbxDataSourLog.text="не ОК"
            End If
            
        end if

Метод потока

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private Sub MonitorAccess()
            Do While (1=1)
                If My.Computer.Network.Ping("127.0.0.1",500) Then
                    If Not(ConnectionAbort.Value) then
                        ConnectionAbort.Value = True
                    End If
                Else
                    If ConnectionAbort.Value then
                        ConnectionAbort.Value = False
                    End If
                    ConnectionAbort.Value = False
                End If
            Loop
 
        End Sub

Ругается гадина, что пытаюсь обратится к объекту "tbxDataSourLog" созданному не в текущем потоке.
Если исключаю поток(делаю цикл, допустим по кнопке запускается), то все отрабатывает. Но не подходит, так как фоном должна проверка идти
Есть мысли как это обойти?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2015, 14:49
Ответы с готовыми решениями:

Сокеты, ошибка доступа к элементу управления из потока
Здравствуйте. Такая проблема: использую сокеты для передачи текстовой информации, после получения, при попытке вывести на форму в текстовое...

Ошибка доступа к элементу управления из другого потока
Код C# namespace DemoIntegral { public partial class Form1 : Form { public Form1() { ...

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

1
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
03.03.2015, 19:10
Тема уже много раз поднималась, пользуйтесь поиском
в потоке вставь это:
VB.NET
1
2
3
4
                Me.Invoke(Sub()
                              Label1.Text = "Загрузка пакета..."
                              ProgressBar1.Style = ProgressBarStyle.Blocks
                          End Sub)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2015, 19:10
Помогаю со студенческими работами здесь

BackgroundWorker: попытка доступа к элементу управления не из того потока
Здравствуйте. Прошу помочь разобраться с BackgroundWorker. Только начинаю знакомство с этим языком и всеми его возможностями, поэтому...

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

Игра "Жизнь". Ошибка "попытка доступа к элементу управления не из того потока, в котором он был создан"
В 96 строке ошибка. Не могу ее исправить. Помогите, пожалуйста! using System; using System.Collections.Generic; using...

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru