Страница: 1 |
Страница: 1 |
Вопрос: опять потоки
Добавлено: 18.02.11 23:24
Автор вопроса: max
привет всем.
как корректно закрыть потоки? типа есть форма из которой открыты несколько потоков. как их корректно убить, чтобы создать новые? потоки открываются по внешних dll,
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
max
Вопросов: 1
Ответов: 4
Профиль | | #1
Добавлено: 18.02.11 23:27
если можно - простой пример, как закрыть все потоки, кроме главного.
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 19.02.11 02:14
Ты считаешь этой информации достаточно чтобы ответить на твой вопрос?
У меня есть транспортное средство, как узнать сколько у него колес?
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 19.02.11 02:15
Да, желательно пример определения количества колес у транспортного средства
Номер ответа: 4
Автор ответа:
max
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 19.02.11 02:38
из главной формы, нажатием кнопок, вызваны несколько процедур, которые породили потоки. вопрос-как закрыть все дочерние потоки главной формы(кроме нее). какую инфу еще надо по этому вопросу- без проблем
поток при вызове usb.show( и т.д..
---------------------------------------
надо при следующем клике на узел дерева сначала завершить уже имеющиеся потоки
Номер ответа: 5
Автор ответа:
max
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 19.02.11 02:40
потоки IsBackground = True
Номер ответа: 6
Автор ответа:
max
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 19.02.11 03:11
ну вот, блин - все ушли колеса качать
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 19.02.11 04:59
Поток штатно завершает свою работу, когда завершает свою работу метод, находящийся в самом низу стека вызовов (т.е. тот метод, который ты указываешь в конструкторе потока).
Можно принудительно завершить поток, для этого нужно получить ссылку на него и вызвать Thread.Abort. При этом если поток уничтожается из другого потока, нужно быть готовым к тому что это может произойти когда выполняются какие-то критически важные действия, и в результате принудительного уничтожения приложение может оказаться в неопределенном состоянии и не сможет восстановиться даже если в этом месте стоят обрабочтики исключений. Подробнее можно почитать в MSDN, там приводился пример, в частности, с зависшими мониторами (lock/SyncLock).
Я думаю тебе стоит показать свой код чтоб можно было более корректно посоветовать, каким образом лучше завершать работу потоков.