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

Вниз

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

 
Res   (2008-06-20 21:49) [0]

Здравствуйте..
имеется процедура test

procedure test;
begin
....
if(...) then exit;
...
end;

При запуске данной процедуры в потоке, почему то торзмозит весь поток, т.е. код дальше не выполняется после этой процедуры


 
Игорь Шевченко ©   (2008-06-20 21:50) [1]

не компилируется


 
Сергей М. ©   (2008-06-20 22:11) [2]


> торзмозит .., т.е. .. не выполняется


Прелюбопытные синонимы)


 
McSimm ©   (2008-06-20 22:23) [3]

Наверное это было предупреждение, не вопрос.


 
Сергей М. ©   (2008-06-20 22:49) [4]

Ладно хоть не угроза..


> Res   (20.06.08 21:49) 
</I

> При запуске данной процедуры в потоке


Это еще надо умудриться - запустить процедуру не в потоке..


 
Palladin ©   (2008-06-20 22:57) [5]


>Сергей М. ©   (20.06.08 22:49) [4]

не принимай аффтара слишком близко к сердцу... он месяца три назад строки разбирать начал... теперь у младенца в руках перфоратор в виде потоков... он ими теперь строки разбирает... на каждую строчку - поток


 
Тын-Дын ©   (2008-06-20 23:19) [6]

Удалено модератором


 
Игорь Шевченко ©   (2008-06-20 23:20) [7]

Удалено модератором


 
Тын-Дын ©   (2008-06-20 23:23) [8]

Удалено модератором


 
Res   (2008-06-20 23:24) [9]

Еще проблема в том, что прога все больше и больше жрет памяти...

>
>
> Покажи код потока. Без этого не имеет смысла обсуждать что-
> то.
>
> PS. Не обращай внимания на детские комментарии. Здесь и
> такие ходят.

Запускаю поток:
     BeginThread(nil,0,Addr(thread),Addr(ggg),0,id);
Сам поток:

procedure thread(param:pointer);
var
command:^string;
sss:string;
sproxy,saccount:string;
x,y:integer;
rst:integer;
label
lproxy,laccount;
begin
command:=param;
sss:=command^;
freemem(param,SizeOf(string));
if(sss="") then EndThread(0);
 laccount:
 saccount:="";
 EnterCriticalSection(form1.cs);
   saccount:=getaccount;
 LeaveCriticalSection(form1.cs);
 //sleep(1115000);
 if(saccount="") then EndThread(0);
 lproxy:
 sproxy:="";
 EnterCriticalSection(form1.cs);
   sproxy:=getproxy;
 LeaveCriticalSection(form1.cs);
 if(sproxy="") then EndThread(0);
 //messagebox(0,PAnsiChar(sproxy),"",0);
   rst:=test(saccount,sproxy,sss);
  // messagebox(0,PAnsiChar(saccount),"",0);
   if(rst=0) then
   begin
     EnterCriticalSection(form1.cs);
       x:=0;
       while(x<=form1.account.Count-1) do
       begin
         if(form1.account.Strings[x]=saccount) then
         begin
           form1.account.Delete(x);
           x:=x-1;
         end;
         x:=x+1;
       end;
     LeaveCriticalSection(form1.cs);
     goto laccount;
   end
   else if(rst=1) then
   begin
     EnterCriticalSection(form1.cs);
       x:=0;
       while(x<=form1.proxy.Count-1) do
       begin
         if(form1.proxy.Strings[x]=sproxy) then
         begin
           form1.proxy.Delete(x);
           x:=x-1;
         end;
         x:=x+1;
       end;
     LeaveCriticalSection(form1.cs);
    goto lproxy;
   end;    
...
EndThread(0);
end;


 
Тын-Дын ©   (2008-06-20 23:29) [10]


> rst:=test(saccount,sproxy,sss);

Что процедура-то делает? Из твоего кода мало что понятно.


 
Игорь Шевченко ©   (2008-06-20 23:30) [11]

Res   (20.06.08 23:24) [9]

слова "test", "exit" потерялись при копировании.


 
Тын-Дын ©   (2008-06-20 23:30) [12]

Удалено модератором
Примечание: Достал. Читай правила


 
Тын-Дын ©   (2008-06-20 23:33) [13]

Удалено модератором


 
Loginov Dmitry ©   (2008-06-21 09:00) [14]

> command:=param;
> sss:=command^;
> freemem(param,SizeOf(string));


это что? Объясни, что хотел сделать.


 
Сергей М. ©   (2008-06-21 22:28) [15]


>  прога все больше и больше жрет памяти


Не мудрено, что "жрет".

Ты ж сам ее и "скармливаешь" всякий раз, когда вызываешь EndThread)



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

Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
15-1212254418
wl
2008-05-31 21:20
2008.07.20
Валерий Фаронов. Delphi 2005. Руководство по переходу с...


2-1214072499
Вован
2008-06-21 22:21
2008.07.20
Нужно открыть окно чужой минимизированной программы


11-1191960858
ElectriC
2007-10-10 00:14
2008.07.20
Проблема с KeyPreview


2-1213696082
checkmate-maker
2008-06-17 13:48
2008.07.20
Мерцание tImage


11-1191827466
Nikfel
2007-10-08 11:11
2008.07.20
Получить список файлов и папок.





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