|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.02.2009, 17:05 | #11 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот наскорую руку накропал такое принудительное останавливание.
Код:
http://wm-help.net/books-online/book.../59464-23.html
I'm learning to live...
|
05.02.2009, 17:30 | #12 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
А собственно зачем ? На мой взгляд ответ дан, пусть автор решает сам как ему будет удобно в его ситуации это сделать.
|
05.02.2009, 18:02 | #13 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Согласен! Я многого ещё не понимаю. Однако, я хорошо понимаю, что должен существовать какой-то способ остановки потока. Возьмём к примеру игру FERZ, или мою реализацию этой игры (Queen Battles, собственно которая меня и побудила к написанию этой темы). Есть, экспортируемая из DLL, процедура, допустим, хода (GetStep). Так вот. Допустим, бот думает долго или вообще завис. Что, вместе с ним должна висеть и моя прога? Если сильно упростить структуру QueenBattles, то получается, что GetStep вызывается в потоке, т.е. в процедуре execute, а это значит, что пока GetStep не выполниться не выполняться и последующие строчки. Может в GetStep (демонстрируя невнимательность автора бота) запустился бесконечный цикл. Что, моя прога обречена на аварийное выключение из диспетчера задач?
Stilet, алгоритм (пост #11) не пашет. Caption у формы просто пустым делается. |
05.02.2009, 18:11 | #14 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ну если повесился код в потоке, то тут уже извените, за то что код видимо написан не верно, вам и отдуваться. Если вы хотите чтобы при возникновении такого бага в другом потоке, убить его... гм.. ну такое врятли возможно, т.к. именно этот поток в вашем процессе, значит вы за него отвечаите, а винда распределяет время по всем потокам, и только она может просто прекратить давать время этому потоку, т.е. отрубить его Но вы то, верней ваш код, будет выполнятся только тогда когда его очередь прийдет, т.е. вы не можете сделать так чтобы винда допустила вас на такой уровень, чтобы управлять очередью процессов(потоков) для обработки. Исходите только из API и того что я предложил.
|
05.02.2009, 18:17 | #15 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Я почитаю
Но не может быть, что-бы поток насильно нельзя было-бы остановить. |
05.02.2009, 18:24 | #16 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Я же сказал... вам виндовс не даст права супервизора только API и дождатся очереди выполнения вашего кода
|
07.02.2009, 11:17 | #17 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Вроде разобрался. Вот только, как синхронизацию проводить? что-бы окна открывать и закрывать?
Последний раз редактировалось Altera; 07.02.2009 в 11:52. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Остановка Memo | Sanek777 | Общие вопросы Delphi | 1 | 11.09.2008 15:50 |
Ricoh Aficio FX200, замятие(остановка печати) | PDVich | Компьютерное железо | 0 | 07.05.2008 10:22 |
Управление потоками. Запуск, остановка, приоритет потока. | metamfetamin | Помощь студентам | 5 | 11.11.2007 12:45 |
Остановка ADODS при OnFetchProcess | QuAlex | БД в Delphi | 0 | 04.10.2007 17:31 |