Что возвращает метод TThread.Start

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Аватара пользователя
AbakAngelSoft
постоялец
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар
Контактная информация:

Что возвращает метод TThread.Start

Сообщение AbakAngelSoft »

Достался по наследству от другого разработчика код. В нем активно используются потоки и постоянно встречается конструкция

Код: Выделить всё

if Thread.Start then ... else ...

В Lazarus Start это процедура которая ничего не возвращает. В имеющейся у меня справке по Delphi тоже написано что это процедура. Delphi под рукой нет т.к. работаю под Ubuntu. И соответственно перевожу код под нее. В исходниках оставшихся у меня со времен Delphi6 этого метода вообще нет. Только Resume. Мне вспоминается что его зачем-то объявили устаревшим.

Что возвращает Start? Где взять это значение при использовании Lazarus?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

В FPC TThread.Start соответствует имеющейся в открытом доступе дельфевой документации: http://docwiki.embarcadero.com/VCL/en/C ... read.Start
Если она не соответствует действительности, то тут нужно уточнять у тех, у кого есть последние версии дельфей.

Еще есть вероятность, что в проекте этот метод перекрыт у какого-нибудь потомка TThread.
Аватара пользователя
AbakAngelSoft
постоялец
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар
Контактная информация:

Сообщение AbakAngelSoft »

Нет в проекте метод не перекрыт. Вы правы - по всей видимости не соответствует документации.
Откуда вообще берутся любители недокументированных возможностей? Неужели штатных средств не достаточно?
Ну уже разобрался по логике кода. Скорее всего должно возвращаться

Код: Выделить всё

not Terminated
Во всяком случае так этот кусок кода работает.
Ответить