Вызвать события класса в потоке, в котором он был создан C#
От: Павел А.Ануфриков Россия  
Дата: 07.08.10 09:18
Оценка:
Вопрос больше по проектированию, но применительно к C#.

Есть класс логики, который реализует логику приложения. Есть класс формы, который владеет первым классом. Класс логики содержит пул потоков, в которых генерируются события. Он эти события обрабатывает и пересылает форме. В результате в форме вызываются обработчики событий из сторонних потоков, и приходится вызывать .InvokeRequired, .Invoke и т.п.

Мне кажется, в правильной структуре, не должно быть такой ситуации, что форма должна заботиться о том, чтобы вызов был из нужного потока. Если это верно, то тогда вопрос по реализации: как правильно сделать, чтобы класс логики всегда вызывал события из того потока, в котором был создан?

Передавать родительский контрол ему в конструктор, у которого потом зызывать .Invoke — решение очевидное, но классу логики ни к чему связь с System.Windows.Forms.Control.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.