Поток останавливается, когда ассоциирован, но не владеет, winform скрыта - PullRequest
0 голосов
/ 30 августа 2018

Я надеюсь, что кто-то сможет помочь диагностировать мучительную боль в нитях, которую я, похоже, испытываю.

Моя основная форма создает экземпляр моего класса FccEventListener, который, в свою очередь, создает фоновый поток, который прослушивает сетевой порт. Затем основная форма создает экземпляр другой формы с именем frmPendingTransactions и передает fccEventListener в ее конструктор. Затем frmPendingTransactions подписывается на ряд событий, предоставляемых fccEventListener, а также другой службой с именем recyclerClient.

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

Я пытался конвертировать в BackgroundWorker и видел то же поведение.

Я не понимаю, как скрытие формы B (через событие, вызванное другой службой) может повлиять на поток, принадлежащий его родительской форме, форме A.

Заранее благодарим за любую помощь, которую вы можете оказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...