Есть,
приложение А (пА) — простое WinForms app.
приложение Б (пБ) — class library в котором есть некий класс который возбжудает некоторые события.
пА — подключенно к событиям пБ и модифицирует свои визуальные обьекты.
Всё работало хорошо пока пБ не стало многопоточным и теперь события выбрасываются из потока отличного от главного потока пА.
Ясно что теперь в пА в каждом обработчике события где изменяются визуальные контролы надо использовать BeginInvoke, и это прекрасно работает, но
пА настлько большое что займёт много времени что-бы найти все такие места и добавить нужный код.
Поэтому возник вопрос, как возбуждать события в пБ которые бы были в том же потоке что и главный поток пА.
пБ
public event OnTimestamp NewTimestamp;
public delegate void OnTimestamp(DateTime Stamp);
...
m_ddfClient.NewTimestamp += new Client.NewTimestampEventHandler(m_ddfClient_NewTimestamp); //это многопоточное событие, 3rd party object
...
void m_ddfClient_NewTimestamp(object sender, Client.NewTimestampEventArgs e)
{
if (NewTimestamp != null)
NewTimestamp(e.Timestamp); //это наше событие, должно вызыватся в том же потоке что и главный поток пА
}
Как присоеденить пА и пБ что-бы
наши события из пБ бы-ли как single-threaded?
Спасибо