Главная страница
    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.072 c
2-1213768672
lewka-serdceed
2008-06-18 09:57
2008.07.20
Открытие файла


2-1213610401
masv
2008-06-16 14:00
2008.07.20
изменить размер шрифта при печати сетки


15-1212729969
PHoeNiX
2008-06-06 09:26
2008.07.20
описание процедур


2-1214198328
ganda
2008-06-23 09:18
2008.07.20
Class + Memory


1-1195550737
Sour Smile
2007-11-20 12:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский