Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

CreateThread   Найти похожие ветки 

 
Ольга   (2002-11-12 12:43) [0]

Народ помогите!
Как использовать CreateThread?
Как объявить и написать функцию потока?
Плиз.


 
Polevi ©   (2002-11-12 12:58) [1]

class CThread
{
public:
HANDLE Handle;
DWORD ThreadID;
BOOL Terminated;

CThread(BOOL suspended)
{
Terminated=false;
if (suspended)
Handle=CreateThread(NULL, 0, ThreadProc, this, CREATE_SUSPENDED, &ThreadID);
else
Handle=CreateThread(NULL, 0, ThreadProc, this, 0, &ThreadID);
}

virtual DWORD Execute()=0;

void Resume()
{
ResumeThread(Handle);
}
};


DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
return ((CThread *)lpParameter)->Execute();
}


 
Игорь Шевченко ©   (2002-11-12 13:00) [2]

Ольга (12.11.02 12:43)

Создать наследника от TThread проще всего

uses Classes;


 
Polevi ©   (2002-11-12 13:12) [3]

WinApi


 
Evgeny V ©   (2002-11-12 13:13) [4]

Ольга, встречный вопрос, обязательно создавать через API ? Почему не использовать дельфийский класс TThread (создать свой потомок )? В helpe про него написано хорошо, и примеры кое-какие есть.


 
Игорь Шевченко ©   (2002-11-12 14:21) [5]

Polevi © (12.11.02 13:12)

WinApi подразумевает, уважаемый, наличие определенных знаний, в том числе и про потоки. Судя по уровню знаний автора, лучше использовать TThread.


 
Polevi ©   (2002-11-12 14:28) [6]

из данного вопроса довольно сложно судить об уровне знаний вопрошающего, вопрос был вполне конкретный


 
Polevi ©   (2002-11-12 14:30) [7]

PS
Polevi © (12.11.02 13:12) - это всего лишь напоминание о названии раздела форума, если вы не поняли


 
Игорь Шевченко ©   (2002-11-12 14:45) [8]

Polevi © (12.11.02 12:58)
class CThread
{
public:
HANDLE Handle;
DWORD ThreadID;
BOOL Terminated;


Раз уж вы меня учите, то осмелюсь напомнить, что сайт называется "Мастера Delphi" :-)


 
Digitman ©   (2002-11-12 14:49) [9]

Ну-у-у-у !)

Понеслаааась)..

Как только клоун какой-то барышней представился, сразу мужики напоказ меряться начали - у кого длинней))))



 
Polevi ©   (2002-11-12 15:06) [10]

2Игорь Шевченко © (12.11.02 14:45)
простите учитель, я больше не буду :-)))


 
Игорь Шевченко ©   (2002-11-12 15:12) [11]

Digitman © (12.11.02 14:49)

Ото ж :-)

Polevi © (12.11.02 15:06)

:-)


 
Digitman ©   (2002-11-12 15:30) [12]

>Игорь Шевченко

Во, прикинул - тоже не короток кажись)))))
Ото ж щас тоже меряться полезу))))))))

И все дружно в "Потрепаться" поедем))))
С песнями и плясками))))) Продолжать меряться)))))))))))


 
ZZ ©   (2002-11-12 16:10) [13]

Что-то вроде этого

function func(dwParam : Cardinal):Cardinal;stdcall;
begin
//...
end;


CreateThread(nil,0,@func,Param,0,ThID);


 
Ольга   (2002-11-12 17:17) [14]

Всем спасибки! Неожидала стольких ответов :-)
Что касается знаний, их маловато.
Почему именно WinApi? Потому что лабы такие и разобраться в них хотся.
А конкретно немогу разобраться в объявлении с типами запуталась.
Вот так вот. :-)
Еще раз народу спасибки!


 
Polevi ©   (2002-11-12 18:25) [15]

program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, Windows,stdctrls;

//ф-ия потока
function ThreadProc(lpParameter:Pointer):DWORD;stdcall;
var
i:integer;
begin
for i:=1 to 5 do
begin
Writeln(IntToStr(i));
sleep(500);
end;
Writeln("Vishel zaichik pogulat.");
//сдесь поток завершается
end;

var
h:THandle; //хендл потока
id:DWORD; //id потока
begin
//Создаем поток и сразу запускаем его
h:=CreateThread(nil,0,@ThreadProc,nil,0,id);
//ждем завершения потока
WaitForSingleObject(h,INFINITE);
Readln;
end.


 
Ольга   (2002-11-13 14:06) [16]

А кто нить в курсе что за тип такой Pointer?
А если я в функцию хочу передать параметр другого типа?
Скажем интеджер?


 
Polevi ©   (2002-11-13 14:27) [17]

Pointer(1234)



Страницы: 1 вся ветка

Текущий архив: 2002.12.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
6-99228
xnick
2002-11-04 09:52
2002.12.30
Pipe


14-99263
Макар
2002-12-11 23:20
2002.12.30
Где в Инете можно найти описание всех функций Delphi?


3-98994
nadin
2002-12-10 14:35
2002.12.30
DBase или ?


4-99414
Vasily Terekhov
2002-11-13 10:19
2002.12.30
Перехват сворачивания и восстановления окон


1-99192
denis24
2002-12-19 10:37
2002.12.30
stringgrid and image