.NET эквивалентно группам потоков Java? - PullRequest
3 голосов
/ 30 сентября 2008

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

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

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

Ответы [ 3 ]

3 голосов
/ 30 сентября 2008

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

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

Однако понятие групп потоков не существует, AFAIK.

2 голосов
/ 04 октября 2008

Они работают над чем-то вроде этого в своем API "Задача", который является частью Parallel Extensions.

1 голос
/ 16 января 2009

Сделать проще:

Создайте свой класс ThreadGroup с помощью метода, охватывающего процесс создания потока.

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

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