2012-05-23 3 views
0

У меня возникли проблемы с пониманием, куда идти дальше. Я разработал форму, которая имеет доступ к базе данных SQL Express и управляет ею через DataSet. Я также разработал класс, который прослушивает многопоточный TCP-сервер для обновлений от других клиентов через проприетарный протокол.Многопоточный делегат C# и события

Что мне нужно сделать, это получить эти обновления в форме, которая имеет экземпляр набора данных для обновления.

Я проверил здесь часть справки о мероприятии и делегате и this guide, которые казались удобными сначала, но страдают от той же проблемы, что и многие из этих примеров - они не очень хорошо разбираются в том, что происходит , и в конечном итоге используйте аналогичные переменные в обоих классах.

В каком классе находится «подписчик», а какой «издатель»? Я действительно ненавижу программирование форм и делаю это полностью на основе командной строки, но для группы людей, которые настолько неграмотны в компьютере, что они могут испытывать травму от необходимости использовать подсказку.

+4

Я уверен, что ваши конечные пользователи любят вас так, как вы их любите. –

+0

вы должны просто запустить средство просмотра браузера и выполнить интерфейс в HTML/Javascript – FlavorScape

ответ

0

Издатель - это объект, класс которого объявляет событие. Например, DataTable публикует событие RowChanged.

Объект, который обрабатывает событие, является подписчиком. Например, класс с _table поле может подписаться на RowChanged события таким образом (при условии, метод обработки, конечно, существует):

this._table.RowChanged += this.HandleRowChanged; 

Иногда класс может подписаться на его собственном случае. Примером может быть событие загрузки формы Windows. Это использует больше накладных расходов, чем необходимо, а некоторые фреймворки предоставляют виртуальные методы, позволяющие подклассам расширять функциональность базового класса без создания делегата события. Вот почему метод OnLoad формы является виртуальным.

Смежные вопросы