Форум: "WinAPI";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c