Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Вниз

Сложная и долгая задача   Найти похожие ветки 

 
Ich Hasse   (2003-06-11 14:04) [0]

Как сделать, чтобы приложение не подвисало при начале долгой и сложной процедуры?

Заранее большое спасибо, только приведите пример пожалуйста.


 
jel   (2003-06-11 14:10) [1]

Либо Application.ProcessMessages в цикле долгой и сложной процедуры, либо в отдельном потоке ее выполнять. Примеры в справке.


 
Ich Hasse   (2003-06-11 14:13) [2]

А как в отдельном потоке? И приложения у меня на API, откуда здесь Application.ProcessMessages?


 
jel   (2003-06-11 14:16) [3]


> И приложения у меня на API

Из вопроса это не ясно.

> А как в отдельном потоке?

The CreateThread function creates a thread to execute within the address space of the calling process.


 
Ich Hasse   (2003-06-11 14:18) [4]

> Из вопроса это не ясно.
Зато из темы форума ясно

> The CreateThread function creates a thread to execute within
> the address space of the calling process.


ну а пример


 
jel   (2003-06-11 14:20) [5]


> ну а пример

Ну а справку почитать?


 
Ich Hasse   (2003-06-11 14:23) [6]

Там примера нету... а мне нужен именно пример


 
Крот   (2003-06-11 14:38) [7]

Посмотри исходники класса TThread и функции Application.ProcessMessages


 
Digitman   (2003-06-11 14:39) [8]


> Ich Hasse


открываешь исх.текст модуля, где определен и реализован класс TThread - вот тебе и пример.


 
Ich Hasse   (2003-06-11 14:45) [9]

там слишком криво, плюс еще эта классовая структура, заманаешься летать по всем функциям. Люди, ну что жалко пример что ли? Дайте просто текст.

есть процедура
procedure SuperAction;
begin
...
end;

Как выделить сделать так, чтобы ничего не зависло ри ее выполнении и все...


 
jel   (2003-06-11 14:50) [10]

function MainServiceThread(p:Pointer):DWORD;stdcall;
begin
что-то делаем
end;

var
ThID : Cardinal;

hThread:=CreateThread(nil,0,@MainServiceThread,nil,0,ThID);
и ждем его завершения
WaitForSingleObject(hThread,INFINITE);
закрывая после этого его дескриптор
CloseHandle(hThread);



 
Digitman   (2003-06-11 14:51) [11]


> Ich Hasse



> там слишком криво, плюс еще эта классовая структура, заманаешься
> летать по всем функциям


непонятно, зачем тебе вообще Делфи в таком случае)))


 
Ich Hasse   (2003-06-11 14:59) [12]


> непонятно, зачем тебе вообще Делфи в таком случае)))


я бы с удовольствием и на assembler писал, да только там слишком много кода. Потому пишу только используя API. Но пишу только простые программы


 
Serg11   (2003-06-11 14:59) [13]

http://epg2000.narod.ru/create_threads_without_tthread.shtml.htm

вот ссылка на пример


 
Digitman   (2003-06-11 15:10) [14]


> Ich Hasse



> я бы с удовольствием и на assembler писал, да только там
> слишком много кода


а в Делфи-приложении, делающем то же самое, "простое", но используещем на полную мощь все преимущества VCL, надо понимать, "слишком мало кода" ? Надо ж ведь обязательно, беспричинно отказавшись от VCL, изнасиловать себя лихорадочной стыковкой Паскаль-синтаксиса и WinAPI-интерфейса, описание и C-синтаксис которого присутствует во всей красе на msdn.microsoft.com ?



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

Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
14-45158
Вопрошающий.
2003-07-30 17:12
2003.08.14
Утечка памяти в собственной программе


14-45083
WMag
2003-06-14 23:26
2003.08.14
WM_PAINT и inherited


14-45076
Sheng
2003-07-26 19:05
2003.08.14
А что, уже и краки сюда мона вылаживать?


14-44965
aaa3aaa
2003-07-30 14:08
2003.08.14
Поможите кто сможет... попадаю


14-45124
Ich Hasse
2003-06-11 14:04
2003.08.14
Сложная и долгая задача





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский