RE: Нотификация объекта в основном потоке из дочернего потока
Хорошенько подумав, я пришел к выводу, что проблема не в использовании Events. Ошибка как раз возникала в формах и использование Invoke решает эту проблему.
Мне хотелось, чтобы при изменении данных в классе Б класс А автоматически реагировал бы на эти изменения. Но в этом случае придется построить нечто типа WinProc в которой происходит прием и обработка сообщений к окну. В результате чего поток начинает работу только когда приходит сообщение, а все остальное время он спит.
Это нечто другое. В моем случае, чтобы разделить обработку мне скорее всего больше подойдет не сихронные (Asyncronous) вызовы с помощью BeginInvoke и EndInvoke. Так как я работаю с сокетами, то можно использовать его BeginReceive или BeginSend. И здесь нужно только правильно отследить и синхронизировать блоки при чтении/записи информации.
Объекту А придется самому обращаться к Б каждый раз, когда ему потребуется проверить наличие пришедшей информации.
|