Нотификация объекта в основном потоке из дочернего потока
Проблема такая: имеется объект типа А в котором создается объект типа Б (вложенный). В классе Б есть сокет по которому передаются или принимаются комманды. Для чтения приходящих комманд я создаю отдельный поток.
Когда такая комманда получена, её необходимо передать в родительский объект А. Вот тут и возникает проблема. Если делать это с помощью события (Event), то возникает ошибка. Если использовать Callback функции, результат тот же. Так как callback вызывается из дочернего потока а не в основном. Это как-то связанно с управляемыми потоками и синхронизацией данных.
К примеру в формах, это можно решить с помощью свойств и методов объекта Control - InvokeRequired и Invoke. А что делать, если мой объект не является контролем и не наследует от него этого решения?
Я немного запутался с этими управляемыми потоками. Может кто-нибудь объяснить как они работают или дать линки на более или менее понятные статьи?
Хорошо бы и к моему примеру разъяснения.
Спасибо
|