Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

2 патока 1 листбокс

44K
19 января 2011 года
mgelimgeli
8 / / 21.02.2009
добрый времени суток всем. есть 1 поток в котором происходит событие и добавляется в форме листбокс

пример

Код:
Imports System.Threading
Public Class Form1
    Dim WithEvents cl As New Class1
    Dim theard1 As New Threading.Thread(AddressOf cl.cikl)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        theard1.Start()
    End Sub
    Sub add_list(ByVal n As String)
        ListBox1.Items.Add(n)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler cl.event1, AddressOf add_list
    End Sub
End Class

Public Class Class1
    Public Event event1(ByVal maks_number As String)
    Public Sub cikl()
        For maks_number = 1 To 10000
            If maks_number = 10000 Then
                RaiseEvent event1(maks_number)
            End If
        Next
    End Sub

End Class


ошибку выдает такой
Цитата:
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'ListBox1' не из того потока, в котором он был создан.



что можно сделать ? как можно осуществит добавление в листбока с другого потока
заранее спс

5
19 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: mgelimgeli
добрый времени суток всем. есть 1 [COLOR="Red"]паток[/COLOR] в котором происходит событие и добавляется в форме листбокс

пример

Код:
Imports System.Threading
Public Class Form1
    Dim WithEvents cl As New Class1
    Dim theard1 As New Threading.Thread(AddressOf cl.cikl)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        theard1.Start()
    End Sub
    Sub add_list(ByVal n As String)
        ListBox1.Items.Add(n)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler cl.event1, AddressOf add_list
    End Sub
End Class

Public Class Class1
    Public Event event1(ByVal maks_number As String)
    Public Sub cikl()
        For maks_number = 1 To 10000
            If maks_number = 10000 Then
                RaiseEvent event1(maks_number)
            End If
        Next
    End Sub

End Class


ошибку выдает такой


что можно сделать ? как можно осуществит добавление в листбока с другого [COLOR="red"]патока[/COLOR]
заранее спс


КАК!? Как можно было сделать ТРИ раза одну и ту же ошибку? Тебе ведь даже неграмотный дотнет написал:

Цитата:

Недопустимая операция в нескольких [COLOR="red"]потоках[/COLOR]: попытка доступа к элементу управления 'ListBox1' не из того [COLOR="red"]потока[/COLOR], в котором он был создан



За матчастью - сюда.

44K
20 января 2011 года
mgelimgeli
8 / / 21.02.2009
Цитата: hardcase
КАК!? Как можно было сделать ТРИ раза одну и ту же ошибку? Тебе ведь даже неграмотный дотнет написал:


За матчастью - сюда.



я понимаю что я не грамотно пишу но я всегда стараюсь !!! если вы писали на другом языке вы так строго не осуждали меня !! что касается программирование я начинающий

5
20 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: mgelimgeli
я понимаю что я не грамотно пишу но я всегда стараюсь !!! если вы писали на другом языке вы так строго не осуждали меня !! что касается программирование я начинающий


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

//Не только правила русского языка, а и вообще всех европейских, предполагают писать предложения с большой буквы и со знаками препинания. Несоблюдение этого нарушает правила форума, помните об этом. WBR, Sanila_san.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог