Менеджер потоков

Я хочу создать диспетчер потоков для приложения.

Я уже начал использовать потоки, и он работает нормально, но я хотел бы иметь возможность программно уничтожать их или получать информацию о них.

Есть у кого-нибудь идеи?

Пожалуйста, опишите подробнее, как «получить информацию о них».

Ovidiu Pacurar 27.10.2008 00:44

Ну у меня есть начало темы. Однако мне нужно управление потоками, например, возможность разговаривать с потоком. убить его и т.д. pastebin.com/m11238dcf мой стартовый код здесь.

user31642 27.10.2008 00:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
948
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Одно небольшое предупреждение: не используйте Thread.Abort, если вы действительно не закрываете все приложение (или вызываете его из потока, который вы прерываете, и в этом случае вы знаете, что поток делает в данный момент) . Если вы действительно хотите иметь возможность «убивать» потоки, я бы посоветовал довольно «мягкое» уничтожение - установить флаг и регулярно проверять этот флаг изнутри потока.

Часть моего учебника по многопоточности рассказывает о закрытие потоков чисто - может быть, вам это пригодится.

Резко убивать темы: не лучшая идея. Вы должны почти всегда общаться с потоком (подойдет даже простой изменчивый бит-флаг) и позволить потоку совершить самоубийство. Убить его очень рискованно и может привести к блокировке объектов и т. д.

Для более общего случая - слышали ли вы о параллельные расширения? В .NET 4.0 запланирован совершенно новый уровень управления потоками, включая параллельные расширения LINQ и т. д.

Ответ принят как подходящий

Вы можете посмотреть Thread.ThreadState, Thread.Interrupt() и Thread.Abort() (как указывает Джон Скит, это не лучший способ останавливать поток).

Для сбора всех потоков, запущенных в вашем приложении, используйте

System.Diagnostics.Process.GetCurrentProcess().Threads.

Для получения дополнительной информации вы можете взглянуть на этот пример монитора потока.

Работает отлично. Я уверен, что немного больше я смогу с ними поговорить. Было именно то, что я искал.

user31642 28.10.2008 05:47

Другие вопросы по теме