C #: любой способ приостановить процесс потока, когда ресурс, используемый этим потоком, освобожден - PullRequest
0 голосов
/ 13 января 2011

Может ли это решение работать? Есть ли способ приостановить поток на неопределенный срок

Освобождаются ли ресурсы с помощью этого решения?

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Короче, нет.Единственный способ прекратить работу потока и освободить все используемые ресурсы - это прервать его ( метод Thread.Abort ).

0 голосов
/ 13 января 2011

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

Общие этапы создания / запуска / оттаивания / работы / замораживания / остановки - это основа многих длительных и / или паузыработоспособные задания, такие как таймеры SharePoint, задачи рабочего процесса Windows или агенты SQL Server.Обратите внимание, что в приведенном выше списке нет фазы «приостановлено на неопределенный срок» - это просто промежуток между созданием и началом (или остановкой и следующим запуском), и, как правило, внешние события поступают в систему.

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