Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
14-99274
Anatoly Podgoretsky
2002-12-07 17:49
2002.12.30
Эстонская всреча Мастаков


7-99390
Alexxov
2002-10-25 13:41
2002.12.30
проблемы с LPT


14-99296
Anar
2002-12-09 19:27
2002.12.30
Программа для закачки файлов на ftp


3-98981
alxx
2002-12-09 12:11
2002.12.30
Проблема с триггером


1-99083
Emigrant
2002-12-17 02:25
2002.12.30
D6: TListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский