2011-05-25 2 views
2

Я строю библиотеку, в которой будет использоваться многопоточное приложение. И мне нужен способ определить, выходит ли конкретный поток..NET Detecting Thread выходит из внешнего кода?

Есть ли способ добавить крючки или получить уведомление, когда определенный Thread выходит, если вы прямо не владеете нитью?

Отклонения нитей являются исключительными и, следовательно, меня не волнуют прерывания, только правильные выходы.

Это значительно упростит библиотеку, если это возможно.

Любые идеи?

ответ

3

Вы можете создать отдельную собственную ветку, а Join() - в соответствующую тему.

Однако, я не вижу более простого способа получить событие Exited.
(Опрос IsAlive редко бывает хорошим вариантом)

+0

Хммм 'Join()' это хорошая идея. Немного опасно, но стоит попробовать. Благодаря! – chakrit

+0

@chakrit: Если вы называете это в специальной теме «официант», это не опасно. В худшем случае вы просто теряете поток. (вам может понадобиться тайм-аут) – SLaks

+0

да, это то, что я уже имею в виду :) – chakrit