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

Ваш аккаунт

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

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

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

Проблема синхронизации главного потока с рабочим...

1.8K
24 ноября 2008 года
NextTime
217 / / 19.12.2007
[ATTACH]3184[/ATTACH] - моя программа...
Здравствуйте. У меня такая проблема. Переношу рабочую программу в отдельный поток. В главной форме сначала выбирается папка, потом жмем старт, после этого должно вылезти сообщение с SelectedIndex у объекта(для проверки), все правильно вылазит 2. Затем стартует поток:
 
Код:
MsgBox(CBencoding.SelectedIndex)
If StopReq Then
   Поток.Abort()
   btnStart.Text = "Начать"
Else
   Поток = New Threading.Thread(AddressOf ProcessStart)
   Поток.Start()
   btnStart.Text = "Стоп"
End If


В начале потока я пытаюсь синхронизировать потоки и снова проверить значение SelectedIndex этого же элемента, только уже из потока:
Код в начале потока:
 
Код:
PropertyGet(frmGen.CBencoding, frmGen.CBencoding.SelectedIndex, propval)
MsgBox(propval)


Процедура PropertyGet:
 
Код:
Public Sub PropertyGet(ByRef Myobject As Object, ByRef myProperty As String, ByRef var As String)
        If Myobject.InvokeRequired Then
            Myobject.Invoke(New GetText(AddressOf PropertyGet), Myobject, myProperty, var)
        Else
            var = myProperty
        End If
End Sub


Делегат в функции объявлен так:

 
Код:
Delegate Sub GetText(ByRef Myobject As Object, ByRef myProperty As String, ByRef var As String)


но, вместо того, чтобы выполнить синхронизацию, сначало происходят много событий ValueChanged у всех элементов на форме, потом поток выполняет функцию PropertyGet, но почему то идет по ветке Else, как будто главный поток и рабочий уже синхронизированы, да еще возвращает значение SelectedIndex уже -1, хотя оно было 2 и его ни кто не менял. Скажите в чем моя ощибка и как можно получить значение свойства элемента главного потока из рабочего при помощи синхронизации? а то я всяко менял процедуры и все равно не работает как нужно. Заранее, спасибо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог