Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

Вопрос про нити!!!!!   Найти похожие ветки 

 
Anton V   (2002-06-26 11:00) [0]

У меня большая проблема. Я хочу, чтобы в то время, как одна нить выполняла бы длительную операцию, лругая бы позволяла мне творить с формой всё, что захочу (сворачивать, разворачивать и т. д. ). Нити я создавал через File-->New-->TThread Object [Delphi 5]


 
Anton V   (2002-06-26 11:27) [1]

А вот код к вопросу
unit MyThread:

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Comp1;
type
TypeMyThread = class(TThread)
private
{ Private declarations }
protected
procedure CompareTwoFiles;
procedure Execute; override;
end;

implement
procedure TypeMyThread.CompareTwoFiles;
begin
*******
end;

procedure TypeMyThread.Execute;
Begin
Synchronize(CompareTwoFiles);
End;

unit MainUn:
*********
implementation

Uses TMyThread, MinMax;
Var
MyThread:TypeMyThread;
DoWork:ThreadMinMax;

procedure TForm1.Button3Click(Sender: TObject);
begin
MyThread:=TypeMyThread.Create(False);
DoWork:=ThreadMinMax.Create(False);
end;


 
Игорь Шевченко ©   (2002-06-26 11:31) [2]

Неграмотно. Недавно обсуждалось, что Synchronize заставляет выполняться код в ОСНОВНОМ потоке, а не в Thread"е. Все преимущество параллельной работы сводится на нет.

Вам надо пересмотреть архитектуру приложения. Хороший пример работы с потоками есть в книжке Тейксейры и Пачеко "Delphi 5 руководство разработчика"


 
Внук ©   (2002-06-26 11:34) [3]

Тут и смотреть нечего, весь исполняемый код дополнительной нити выполняется в Synchronize, то есть в контексте главного потока, поэтому считай, что второй нити и нет вовсе... Надо грамотно сихнронизировать (а надо ли вообще?)



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

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-23659
Tutov Roman
2002-06-26 10:42
2002.07.08
Разыскивается URL


6-23701
Dime
2002-04-28 22:17
2002.07.08
Мониторинг сервера


3-23476
Wassily
2002-06-15 20:26
2002.07.08
Как создать базу данных?


14-23734
lak_b
2002-06-06 00:26
2002.07.08
Interbase


1-23555
BKV
2002-06-26 15:57
2002.07.08
Не доходит сообщение windows