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

Вниз

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

 
Анонимщики ©   (2008-06-10 15:14) [0]

Прошу мастеров прокомментировать очевидность и правильность зависания:



program ThreadsDeadLocks_DEMO;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 Classes;

type
 TRapidThread = class(TThread)
 protected
   procedure Execute; override;
 public
   constructor Create(CreateSuspended: Boolean);
   destructor Destroy; override;
 end;

procedure TRapidThread.Execute;
begin
end;

constructor TRapidThread.Create(CreateSuspended: Boolean);
begin
 inherited;
 FreeOnTerminate := false;
end;

destructor TRapidThread.Destroy;
begin
 WaitFor;
 inherited;
end;

var
 rt: TRapidThread;
begin
 try
   rt := TRapidThread.Create(true);
   rt.Execute;
   Sleep(3000);
//    rt.WaitFor;
   rt.Free;

 except
   on E:Exception do
     Writeln(E.Classname, ": ", E.Message);
 end;
end.


 
DVM ©   (2008-06-10 15:21) [1]

resume Пушкин делать будет потоку.


 
Поросенок Винни-Пух ©   (2008-06-10 15:23) [2]

rt := TRapidThread.Create(true);
rt.Execute;

Чума!


 
Анонимщики ©   (2008-06-10 15:25) [3]

тьфу, Resume


 
Анонимщики ©   (2008-06-10 15:26) [4]

в данном случае замена Execute на Resume абсолютно не играет конструктивной роли


 
Анонимщики ©   (2008-06-10 15:28) [5]

Прошу прощения, вопрос снят


 
Поросенок Винни-Пух ©   (2008-06-10 15:32) [6]

в данном случае замена Execute на Resume абсолютно не играет конструктивной роли

А ничего, что то, что по замыслу должно выполняться во вторичном потоке вызвано из главного и в его контексте и выполняется?

:))

И нафига в таком разе вэйтфор?
Типа управление может волшебным образом перейти на следующую строчку еще до возврата из execute?

:))))


 
Сергей М. ©   (2008-06-10 16:19) [7]


> прокомментировать очевидность и правильность зависания:
>


Где что у тебя висит - неочевидно и непонятно.

Зато очевидна и непонятна пустота в теле перекрытого метода Execute.
Очевидно и непонятно также присутствие явного вызова WaitFor в перекрытом деструкторе, в то время как этот же WaitFor присутствует в виртуальном деструкторе класса TThread



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
15-1211817107
Константинов
2008-05-26 19:51
2008.07.13
Looking Glass


4-1192830110
dreamse
2007-10-20 01:41
2008.07.13
Подскажите где в реестре отключить подтверждение с IE


2-1213355939
Namos
2008-06-13 15:18
2008.07.13
Delphi+mysql


8-1183039452
wind1
2007-06-28 18:04
2008.07.13
Отображение .avi файлов


15-1211813808
БарЛог
2008-05-26 18:56
2008.07.13
php. случайный элемент числового множества





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