Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Проблемма с потоком |
Автор: Tronix 15.10.2009, 15:31 | ||||
Всем привет. Наверное вопрос дурацкий, но к сожалению в просмотренных мной темах по потокам в поиске ответа не нашел. Сам я в дельфи новичок, не бейте сильно. Ситуация такая: нужно стартовать поток, потом либо полностью его убить/либо заморозить, и потом создать/стартовать заново. Процедура, которая вызывается из главной формы по нажатию допустим кнопки старт:
Сама процедура потока. Впринципе ничего интересного:
Так вот, поток нормально стартует, но при желании его заморозить вываливается по ексепшену неверный дескриптор на процедуре NewThread.Suspend; Пробовал делать через флаг canrun - из основной программы устанавливаю его в false, чтобы программно заморозить поток, но иногда видимо поток опережает определение флага и проскакивает его. Помогите пожалуйста сделать нормальную остановку и запуск потока. Если уж не с заморозкой, то хотябы подскажите как полностью прибить поток и пересоздать его заного.? Если нужно больше кода или что-то невнятно обьяснил, спросите, я дам больше информации. Извиняюсь за сумбурное изложение, мозг уже плавится, всю ночь и пол дня пытался завести, не получается. Заранее спасибо. |
Автор: Tronix 15.10.2009, 17:23 | ||
Так так так, улавливаю суть. Сейчас попробуем, спасибо за мысль. По результату отпишусь. UPD: Вроде получилось, когда вывел переменную из функции в глоб преременные. Спасибо за помощь. |
Автор: Tronix 15.10.2009, 20:42 |
А еще такой вопрос - когда вызываем Thread.Suspend - поток сразу останавливается, или как-то надо подождать его остановки? Вот допустим вызвал я Suspend из основной формы, а в процедуре Execute еще какое-то действие происходит. Как поведет себя поток? PS: Кому интересно, пишу эмулятор приставки chip8 (не совсем прставки, а интерпретируемого ассемблера для нее, но об этом в вики). |
Автор: MetalFan 15.10.2009, 22:03 |
1. не делать ни в коем случае suspend/resume потоку, если не понимать, как это работает. 2. прочитать статью про потоки в делфи в разделе винапи на этом форуме. |