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





Одно небольшое предупреждение: не используйте Thread.Abort, если вы действительно не закрываете все приложение (или вызываете его из потока, который вы прерываете, и в этом случае вы знаете, что поток делает в данный момент) . Если вы действительно хотите иметь возможность «убивать» потоки, я бы посоветовал довольно «мягкое» уничтожение - установить флаг и регулярно проверять этот флаг изнутри потока.
Часть моего учебника по многопоточности рассказывает о закрытие потоков чисто - может быть, вам это пригодится.
Резко убивать темы: не лучшая идея. Вы должны почти всегда общаться с потоком (подойдет даже простой изменчивый бит-флаг) и позволить потоку совершить самоубийство. Убить его очень рискованно и может привести к блокировке объектов и т. д.
Для более общего случая - слышали ли вы о параллельные расширения? В .NET 4.0 запланирован совершенно новый уровень управления потоками, включая параллельные расширения LINQ и т. д.
Вы можете посмотреть Thread.ThreadState, Thread.Interrupt() и Thread.Abort() (как указывает Джон Скит, это не лучший способ останавливать поток).
Для сбора всех потоков, запущенных в вашем приложении, используйте
System.Diagnostics.Process.GetCurrentProcess().Threads.
Для получения дополнительной информации вы можете взглянуть на этот пример монитора потока.
Работает отлично. Я уверен, что немного больше я смогу с ними поговорить. Было именно то, что я искал.
Пожалуйста, опишите подробнее, как «получить информацию о них».