Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> реализация потоков 
:(
    Опции темы
noob4ever
Дата 4.6.2011, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2009

Репутация: нет
Всего: нет



В общем задача такая: нужно создать много потоков.

For i = 1 To X
            Dim Worker As New ProcessWorker
            Dim t As New Thread(AddressOf Worker.Start)
            t.Start()
Next

Friend Class ProcessWorker
        Friend Sub Start()
          'тут выполняется какие то действия.
          'добавление в listbox1 какого-то значения
        End Sub
End Class

А теперь вопрос, как в конце выполнения потока добавить значение в listbox1?? пробывал так Form1.listbox1.items.add(x) ничего не происходит, через делегат ошибка такая: Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна.

PM MAIL   Вверх
krewin
Дата 4.6.2011, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 27.8.2009

Репутация: 1
Всего: 1



Ты делаешь все не верно ты юзаешь Threading

Проще быть с элементом BackgroundWorker1 там есть процедура Workers_ProgressChanged


 
Код


       Private Sub Workers_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles Workers.ProgressChanged
        
        ListBox1.Items.Add(e.UserState)
    End Sub


юзай коду так где у нас e.UserState данные получаемые от сюда

 
Код

Private Sub Workers_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles Workers.DoWork
'тут фоновая процедура
 e.Result = рузультат фоновой процедуры
 Workers.CancelAsync()

End Sub


для запуска используй код например с кнопки


 
Код

Workers.WorkerSupportsCancellation = True
        Workers.WorkerReportsProgress = True
        Workers.RunWorkerAsync()




вот примерно так






PM MAIL   Вверх
noob4ever
Дата 7.6.2011, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2009

Репутация: нет
Всего: нет



дело в том, что хочу обойтись без фоновых потоков, потому что количество потоков задается пользователем, предлагаешь 100 штук BackgroundWorker вынести на форму??  это как раз умею, и это не правильно точно, поэтому ищу другой способ, как же быть?

Это сообщение отредактировал(а) noob4ever - 7.6.2011, 13:22
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.