Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как убить создание мной потоки?


Автор: X-Vlad 9.4.2004, 11:47
Привет всем.

Я работаю с сокетами. Когда приконекчивается клиент я создаю для него отдельный поток.

Вопрос:

Хочу добавить функцию перезагрузки сервера. Мне надо сначала расконектить всех клиентов а потом перезагрузить сервер(программа).

Как убить поток если я знаю его ThreadID?



Помогите.


Зарание благодарен.

Автор: <Spawn> 9.4.2004, 12:00
То есть ты не пользуешься Дельфийским классом? Тогда TerminateThread

Автор: X-Vlad 9.4.2004, 12:02
Цитата
Тогда TerminateThread
- убивает всех?

Автор: <Spawn> 9.4.2004, 12:06
Можно было хелп глянуть)) Убивает тот поток, ThreadId которого бы передашь в функцию. То есть в цикле пробегаешь и килаешь потоки

Автор: X-Vlad 9.4.2004, 13:02
Код
BOOL TerminateThread(

   HANDLE hThread, // handle to the thread
   DWORD dwExitCode  // exit code for the thread
  );
- что писать во второй параметр?

Автор: dm9 9.4.2004, 13:16
ExitCode smile.gif

Ну ноль напиши - всё равно этим не пользуешься.

Автор: X-Vlad 9.4.2004, 13:30
Что-то невыходит у меня с "убийством" потоков..... sad.gif делаю вот так:

когда клиент законектился записыва в таблицу [/code] IntToHex(ClientThread.ThreadID, 8);[code]

а когда хочу "убить" делаю:

[code] TerminateThread(strtocard(clientview.cells[8,i]),0);

в чом проблема?

Помогите пожалуйсто.... Горит проект....

Автор: X-Vlad 9.4.2004, 14:55
Разобрался....

я неправильно делал.
надо так:
Код
IntToStr(ClientThread.ThreadID)
- заганяю в таблицу ThreadID.
Код
StrtoInt(clientview.cells[8,i])
- беру ThreadID.

"Убивать" получается...


Спасибо всем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)