Главная страница
    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
4-1192946133
SKIPtr
2007-10-21 09:55
2008.07.13
Какую функцию лучше использовать


15-1211789451
i
2008-05-26 12:10
2008.07.13
Перехват печати на принтере


2-1213282612
voland
2008-06-12 18:56
2008.07.13
Подскажите как создать файл хелпа в формате chm


15-1211878733
Dmitry S
2008-05-27 12:58
2008.07.13
Ширина IPicture в пикселях


2-1213347467
TForumHelp
2008-06-13 12:57
2008.07.13
Получение класса по его имени





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