View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002256SAS.ПланетаРефакторингpublic19-11-2013 15:5321-11-2013 14:33
Reportervdemidov 
Assigned Tovdemidov 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionProfessional
Product Version121010 
Target Version140303Fixed in Version140303 
Summary0002256: Зависание при ошибке в конструкторе потоков обработки операций с выделенной областью
DescriptionСейчас все операции с выделенной областью реализованы в виде наследников TThread автоматически запускаемого при создании. При любом ексепшене в конструкторе этих классов в Delphi 2007 (в других может быть по-другому) программа тупо зависает.

Похоже самое надежное решение - стартовать созданный поток отдельно в провайдерах операций с выделенной областью. Добавится по одной строчке на каждое создание потока.
TagsNo tags attached.
Attached Files

- Relationships
related to 0002019resolvedvdemidov Зависание при запуске генерации вышележащих слоёв без выбранных зумов 

-  Notes
(0013294)
zed (manager)
21-11-2013 14:25

По-моему в Delphi потоки всегда создаются приостановленными и запускаются только в методе TThread.AfterConstruction, если пользователь явно не указал Suspended = True. Т.е. если у нас происходит исключение в конструкторе, то AfterConstruction не вызовется (как и Destroy) и поток так и останется зависшим. И то, что ты переделал на Suspended = True и ручной вызов Resume после конструктора, по-моему ничего не изменит. Скорее всего тут дополнительно нужно ещё весь конструктор обернуть в try/except и при исключении выставлять флаг, который и проверять перед вызовом Resume.

P.S. И ещё - метод Resume объявлен как deprecated в D2010 и выше.
(0013295)
vdemidov (manager)
21-11-2013 14:33

Изменит. Проверял в дебагере, но только под 2007 делфой, под другими не знаю.

>P.S. И ещё - метод Resume объявлен как deprecated в D2010 и выше.
Увы, но альтернатива ему метод Start (не помню точное название) в 2007 делфе еще не определен, так что до полного перехода на XE2 придется терпеть.

- Users who viewed this issue
User List Anonymous (1086x)
Total Views 1086
Last View 28-02-2020 14:58

- Issue History
Date Modified Username Field Change
19-11-2013 15:53 vdemidov New Issue
19-11-2013 15:53 vdemidov Issue generated from: 0002019
19-11-2013 15:53 vdemidov Relationship added related to 0002019
19-11-2013 15:53 vdemidov Status new => confirmed
21-11-2013 13:00 vdemidov Status confirmed => resolved
21-11-2013 13:00 vdemidov Fixed in Version => 140303
21-11-2013 13:00 vdemidov Resolution open => fixed
21-11-2013 13:00 vdemidov Assigned To => vdemidov
21-11-2013 14:25 zed Note Added: 0013294
21-11-2013 14:33 vdemidov Note Added: 0013295



Copyright © 2007 - 2020 SAS.Planet Team