Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2010, 11:57   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию Как закрыть дополнительный поток из основного?

Как закрыть дополнительный поток из основного?
Пробовал:
TerminateThread(TNewThread,0);
выдает ошибку:
Incompatible types: 'Cardinal' and 'Class reference'

Пробовал:
TNewThread.FreeOnTerminate:=True;
TNewThread.Terminate;
TNewThread:=nil;
выдает ошибку:
Method identifier expected
This form of method call only allowed for class methods
Left side cannot be assigned to

Подскажите, я что-то делаю не так, или все-таки дополнительный поток можно закрыть только изнутри?
Crystallon вне форума Ответить с цитированием
Старый 12.10.2010, 12:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
TerminateThread(TNewThread.Handle,0);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2010, 13:18   #3
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Выдает ошибку :
Method identifier expected
Crystallon вне форума Ответить с цитированием
Старый 12.10.2010, 13:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тьфу блин... Запутал ты меня
TNewThread это класс или объект у тебя?
Если класс то все понятно - так с типами не поступают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2010, 13:47   #5
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тьфу блин... Запутал ты меня
TNewThread это класс или объект у тебя?
Если класс то все понятно - так с типами не поступают.
TNewThread = class(TThread)
private
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
end;

И все таки я не понял можно ли как-то закрыть его из основного потока?=)
Crystallon вне форума Ответить с цитированием
Старый 12.10.2010, 13:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хы... Так TNewThread. Ответ - нельзя.
А вот если ты создашь объект:
Код:
 MyThread:=TNewThread.Create;
то тогда
1) MyThread.Terminate
2) TerminateThread(MyThread.Handle,0);

усек? Так работать нужно не с классами (как ты делаешь) а с объектами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2010, 14:22   #7
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Спасибо, вроде разобрался =)
Crystallon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как во всех позициях добавить дополнительный 0? odium Microsoft Office Excel 3 27.09.2010 19:51
Поток. Не получается создать поток. Выдает ошибки при запуске bigory Общие вопросы по Java, Java SE, Kotlin 3 23.09.2010 00:40
Выбор основного файла в проекте. TwiX Общие вопросы C/C++ 6 20.11.2009 23:06
Сбой обновления основного вайла, патч отменен. Сбой CRC основного файла. Naruto63 Помощь студентам 2 21.10.2009 20:28
Как закрыть приложение aiswork Софт 1 26.09.2009 12:58