2008-09-30 3 views
3

Я пытаюсь контролировать состояния группы потоков в приложении Microsoft.NET, написанном на C#. Я хотел бы также контролировать любые дочерние потоки, порожденные исходными потоками..NET эквивалентен группам потоков Java?

В Java вы можете назначить потоки группе потоков, а их дети также будут принадлежать группе. Есть ли эквивалент в .NET?

Я кратко рассмотрел ExecutionContext и LogicalCallContext, но я не вижу, как найти все потоки, которые находятся в контексте. У Раймонда Чена есть статья о Win32 API method для перечисления тем, но я надеюсь, что мне не нужно идти так низко.

ответ

3

Вы можете перечислить потоки в своем процессе, используя свойство System.Diagnostics.Process Threads.

Обратите внимание, что объекты, которые вы получаете здесь, не того типа, который вы создаете, чтобы сами запускать потоки (т. Е. Не являются объектами System.Threading.Thread).

Концепции групп нитей, однако, не существует, AFAIK.

2

Они работают над чем-то подобным в своем API-интерфейсе «Задача», который является частью параллельных расширений.

1

Сделать это просто:

Создать свой класс ThreadGroup с методом обертывания процесс создания нити.

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

+0

Это хорошая идея, если вы контролируете весь код, запускающий потоки, но я этого не делаю. – 2009-01-20 18:18:25

Смежные вопросы