Страница: 1 |
Страница: 1 |
Вопрос: Процесс блокирует систему, что делать ?
Добавлено: 08.12.06 17:52
Автор вопроса: student-uni
TStart = New ThreadStart(AddressOf BusyThread)
Thrd = New Thread(TStart)
Thrd.Start()
вот таким кодом запускаю нечто в подпрограмме BusyThread
так вот когда в подпрограмме BusyThread просто код - (доступ к БД или что угодно
поиск по диску итд) то блокировки системы нет
/даже когда например проблема с БД и без триады пришлось бы ждать ответа системы/
Окна переключаются
Триаду можно в любои момент убить
все ето происходит в отдельнои триаде
но стоит мне в BusyThread разместить старт процесса
Private Sub BusyThread()
prcN = Process.Start(...)
End Sub
/ подвешиваюшего процесса, ну например попытка доступа к неработаюсчеи Бд или старт нерабочего ВПН/
как система блокируется Окна не переключаются
не смотря на то что я запустил ето все в отдельнои триаде
и я не могу убить процесс
Почему ?
Как сделать процессстарт, чтоб если процесс вешает машину иметь возможность его убить
/иметь возможность переключиться в Нужное окно и кликнуть кнопку вызываюшую килл/
Спасибо
Ответы
Всего ответов: 1
Номер ответа: 1
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #1
Добавлено: 09.12.06 15:33
1. у меня в 2005 process.start вообще просто запускает процесс и идёт дальше (не держит поток).
2. не совсем логично убивать поток, чтобы убить процесс, который запустил этот поток. Не пробовал, но скорее всего убийство потока не повлияет на процесс. Логичнее убивать сам процесс.
В общем, я думаю, что надо создавать диспетчер процессов (в массив пихать все запущенные тобою процессы и так их контролировать).