Показать сообщение отдельно
  #27  
Старый 15.03.2014, 03:58
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от novashdima
Так мне самому нужно указывать эту самую безопасную точку?
Ну конечно же самому. Здесь всего 2 варианта. Либо в наглую остановить поток через Suspend. Или же установить некий флаг сообщающий потоку, что он должен быть остановлен, тогда поток в тех местах в которых может безопасно остановится должен проверять этот флаг и при необходимости останавливаться. Например, если поток сейчас выполняет запись на лазерный диск (DVD-R), а мы его внаглую остановим через Suspend, то вместе с ним остановится и запись диска, которая уже вряд-ли продолжится если вновь запустить приостановленный поток, а недописанную болванку можно выкинуть.
Цитата:
Сообщение от novashdima
Каким образом в коде обработки указать, что поток может быть приостановлен?
Проверять флаг SuspendNeeded и при необходимости самого себя останавливать с помощью Suspend
Цитата:
Сообщение от novashdima
Галочка итак снята
В Delphi 7 снятия этой галочки достаточно. Видимо в XE3 что-то ещё намудрили - нужно с настройками XE3 отдельно разбираться.
Ответить с цитированием