В Silverlight переход от страницы, содержащей поток, завершит поток? - PullRequest
4 голосов
/ 12 января 2010

У меня есть проект Silverlight 3. Когда одна из страниц загружена, создается и запускается объект System.Threading.Thread. Я хочу убедиться, что он заканчивается, когда пользователь уходит со страницы. Произойдет ли это автоматически или мне придется вручную прекратить поток в событии OnNavigatingFrom?

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Объект Thread может быть уничтожен, но созданный им поток процесса будет продолжать работать, пока не вернется метод, который он первоначально вызвал.

Таким образом, если у вас есть какой-то код в каком-то цикле, который никогда не возвращает этот поток, он продолжится, пока вы не сделаете что-то, чтобы прервать этот цикл, независимо от того, что вы делаете с объектом Thread, который его создал. ИМО класс Thread немного неправильный.

1 голос
/ 12 января 2010

Нет, поток будет продолжать жить, даже если на него нет ссылок.

Возможно, вместо использования потока (который я могу предположить только с повторяющейся операцией) вы можете установить таймер, который ставит эту операцию в очередь в пул потоков. таймер прекратит выполнение операции, как только вы выйдете со страницы, и у вас будет больше контроля над вашей системой.

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