Для моего приложения для форм Windows это подписчик службы wcf, и я использую фоновый рабочий класс для выполнения кодов подписки, чтобы при нажатии кнопки «подписаться» пользовательский интерфейс не зависал при попытке подключиться к услуге.
После использования фонового работника для подключения, когда он получает публикацию от издателя, кажется, что он не может получить доступ к потоку пользовательского интерфейса даже после использования следующего кода.
Следующая реализация была выполнена для метода postReceived (), который был создан в службе, и он обрабатывает то, что происходит, когда подписчик публикует публикацию (публикация подписки WCF)
backgroundForm b = (backgroundForm)Application.OpenForms[0];
b.BeginInvoke((MethodInvoker)delegate()
{
//codes to do whatever i wan to do with the GUI
//Examples of it would be disposing a flowlayout panel
//and re-adding it back and populating it again to
//show the refreshed values.
});
Кто-нибудь знает, как решить эту проблему?
EDIT
кроме кода UI, который не был выполнен, я также подчеркнул, что всякий раз, когда сообщение принимается, оно также отображает tempForm, который действует как всплывающее окно для пользователя для обратной связи, которая отправляется
notificationForm tempForm = (notificationForm)notificationList[notificationList.Count - 1];
tempForm.Show();
Приведенный выше код также не был выполнен.