(0013294)
|
zed
|
21-11-2013 14:25
|
|
По-моему в Delphi потоки всегда создаются приостановленными и запускаются только в методе TThread.AfterConstruction, если пользователь явно не указал Suspended = True. Т.е. если у нас происходит исключение в конструкторе, то AfterConstruction не вызовется (как и Destroy) и поток так и останется зависшим. И то, что ты переделал на Suspended = True и ручной вызов Resume после конструктора, по-моему ничего не изменит. Скорее всего тут дополнительно нужно ещё весь конструктор обернуть в try/except и при исключении выставлять флаг, который и проверять перед вызовом Resume.
P.S. И ещё - метод Resume объявлен как deprecated в D2010 и выше. |
|
|
Изменит. Проверял в дебагере, но только под 2007 делфой, под другими не знаю.
>P.S. И ещё - метод Resume объявлен как deprecated в D2010 и выше.
Увы, но альтернатива ему метод Start (не помню точное название) в 2007 делфе еще не определен, так что до полного перехода на XE2 придется терпеть. |
|