Я надеюсь, что кто-то сможет помочь диагностировать мучительную боль в нитях, которую я, похоже, испытываю.
Моя основная форма создает экземпляр моего класса FccEventListener, который, в свою очередь, создает фоновый поток, который прослушивает сетевой порт. Затем основная форма создает экземпляр другой формы с именем frmPendingTransactions и передает fccEventListener в ее конструктор. Затем frmPendingTransactions подписывается на ряд событий, предоставляемых fccEventListener, а также другой службой с именем recyclerClient.
Кажется, все работает нормально. Я могу показывать и скрывать (не закрывать) frmPendingTransactions так, как мне нравится, и fccEventListener продолжает делать это, не беспокоясь. Однако, если происходит событие recyclerClient, в результате которого вызывается метод Hide (), frmPendingTransactions скрывается, но прослушивающий поток прекращает выполнять свою работу. Если я вызываю метод Hide (), поток перестает выполнять свою работу. Но если я пропущу вызов метода Hide () и спрячусь, чтобы сформировать вручную, который все равно использует один и тот же код, это нормально.
Я пытался конвертировать в BackgroundWorker и видел то же поведение.
Я не понимаю, как скрытие формы B (через событие, вызванное другой службой) может повлиять на поток, принадлежащий его родительской форме, форме A.
Заранее благодарим за любую помощь, которую вы можете оказать.