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

Ваш аккаунт

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

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

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

Помогите с делегатами

63K
16 октября 2011 года
2k9software
26 / / 09.03.2011
Есть форма Form1
В ней:
имеется:

Public WithEvents b As New FileMonitor 'Экземпляр класса FileMonitor

Loglist as ListBox
Код:
Public Sub add_log(ByVal a) Handles b.SendEvent
       FileMonitor
    End Sub


Public Class FileMonitor 'Класс обёртка
    Public WithEvents bk As backup = New backup 'Объявили экземпляр класса.

      Public Event SendEvent(ByVal s As String) 'Передача события в главную форму.

 Public Sub MonitorEvent(ByVal s As String) Handles bk.cEvent_backup
        RaiseEvent SendEvent(s)
    End Sub
End Class


Public Class backup
    Public Event cEvent_backup(ByVal drive As String) 'Объявляем событие
    Public Sub Monitor_Event(ByVal mon As FileSystemWatcher, ByVal e As System.IO.FileSystemEventArgs)
        'Вызываем событие и передаём параметры(Событие + имя диска) классу FileMonitor.
        RaiseEvent cEvent_backup(e.ChangeType.ToString + " " + e.Name)
    End Sub
End Class


Из класса backup в родительский класс FileMonitor события передаются нормально.
А вот в процедуре add_log класса Form1 получаем исключение:
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "Loglist" не из того потока, в котором он был создан.

Помогите создать делегаты. Куда и что поставить?
9.7K
25 октября 2011 года
Vitamant
228 / / 07.02.2011
Цитата:
this.Invoke(new MethodInvoker(delegate() {
//... тут как обычно работаешь с объектами, которые расположены на форме..
}));

(с) Cas

Где this - экземпляр формы которой принадлежит контрол.
Если это требуется не в одном единственном месте - объяви отдельно делегат. По синтаксису, правда, не подскажу - не силен в VB - но, думаю, это поможет:
http://msdn.microsoft.com/ru-ru/library/ms172879.aspx

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