Главная страница
    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
2-1213165699
Gringoire
2008-06-11 10:28
2008.07.13
Матрицы в делфи.


3-1201774049
Галинка
2008-01-31 13:07
2008.07.13
Запрос с вычислимым полем (?)


15-1210961167
@!!ex
2008-05-16 22:06
2008.07.13
Как писать на С++, а не на Дельфи?


15-1211868697
atruhin1
2008-05-27 10:11
2008.07.13
Посоветуйте литературу


2-1213209020
slavikdr
2008-06-11 22:30
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский