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

Вниз

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

 
Robt   (2007-09-13 21:28) [0]

Чо делать с synchronize(???) процедуру без параметров не принимает
требует метод потока
Это как панимать ?


 
vampir_infernal   (2007-09-14 06:36) [1]

Как написано, так и понимать. В качестве параметра в Synchronize передается имя какого-либо метода этого же потока. Например:
type
 TMyThread = object( TThtead )
 private
    procedure MyProc;
//--описание

implementation

function TMyThread.Execute : integer;
begin
//--код
Synchronize( MyProc );
//--код
end;

procedure TMyThread.MyProc;
begin
//какой-то код,Кторый выполнится синхронно с основным потоком.
end;


 
Galkov ©   (2007-09-14 06:57) [2]

Причем тут "этого же потока" :shock:


 
robt   (2007-09-14 09:25) [3]

а что в кол можно переопределять паток ?
и зачем если он хавает метод формы ?
и зачем метод когда в API просто DWORD WINAPI ThreadProc(LPVOID lpParameter);


 
vampir_infernal   (2007-09-14 11:53) [4]


> Причем тут "этого же потока" :shock:

Я не совсем правильно выразил мысль. Имелся в виду вообще "метод". Передавать в synchronize метод объекта, отличного от того, в котором поток был создан, я не пробовал, поэтому ничего не могу утверждать о корректности такой конструкции.


> а что в кол можно переопределять паток ?

TThread из KOL.pas - это обычный объект. Что Вам мешает унаследовать от него потомка?


> и зачем если он хавает метод формы ?

"Метод формы" он не хавает


> и зачем метод когда в API просто DWORD WINAPI ThreadProc(LPVOID
> lpParameter);

ThreadProc - это основная функция потока, указатель на которую передается в CreateThread. Она и не должна быть методом. Из нее в последствии (как правило) вызывается Thread.Execute, из которого Вы можете вызвать Synchonize.


 
Galkov ©   (2007-09-14 12:45) [5]


> и зачем если он хавает метод формы ?

затем, что при этом (при synchronize) гарантировано отсутствие конфликтов этого вашего "метода формы" с другими событиями интерфейса.

Грубо говоря, работать с визуальными элементами из другого потока можно ТОЛЬКО через synchronize.
А за работу (с контролами созданными в основном потоке) через Execute - надо руки отрывать сразу, не дожидаясь пока все громко крякнет.


> Имелся в виду вообще "метод".

Вопросов больше не имею :))


 
robt   (2007-09-14 13:09) [6]


> затем, что при этом (при synchronize) гарантировано отсутствие
> конфликтов этого вашего "метода формы" с другими событиями
> интерфейса.

я про то и говорю synchronize(form1.draw);


 
Galkov ©   (2007-09-14 14:18) [7]


> я про то и говорю

Вообще-то, что такое это "то" - непонятно совершенно.
Как и непонятно, остались проблемы с пониманием, или нет
И к чему тогда относилось "зачем", если "про то и говорилось"
И чего вообще было было непонятно с самого начала - тоже не очень понятно стало как-то...


 
vampir_infernal   (2007-09-14 16:27) [8]

Рискну предположить, что программа товарища Robt читает откуда-то какие-то данные в потоке и хочет выводить их на форму в виде графиков, таблиц, etc (например, данные с com-порта).


 
Robt   (2007-09-14 19:46) [9]

ага спектр (звук), и ком порт на подходе (дист управление)

то есть я понял что передаеца метод чтоб знать кому посылать
сендмессажу для синхронизации , но это уже не важно ...


 
Vladimir Kladov   (2007-09-16 20:03) [10]

Наконец-то разрулил свои внеколовские дела. Завтра буду все читать и готовить обновление.


 
max727   (2007-10-04 13:08) [11]

Помогите разобраться
чем использование потоков KOL отличается от стандартных дельфовых потоков?

это вырезка из help-а
unit Unit2;

interface
uses
 Classes;
type
 TMyThread = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
 end;
implementation
{ TMyThread }
procedure TMyThread.Execute;
begin
 { Place thread code here }
end;
end.


не мог бы кто-нибудь привести аналогичный пример для KOL?


 
ANTPro ©   (2007-10-04 14:05) [12]

> [11] max727   (04.10.07 13:08)

http://www.kolnmck.ru/files/demo/demothread.7z ?


 
max727   (2007-10-04 18:48) [13]


> ANTPro ©   (04.10.07 14:05) [12]
> http://www.kolnmck.ru/files/demo/demothread.7z ?


А если мне нужно использовать Synchronize, то как?
этого в примере нет


 
KOLBoss ©   (2007-12-03 20:36) [14]

Подскажите пажалуйста как создать динамически потоки.

uses Windows, Messages, KOL;
type
TMyThread = object( TThtead )


пробывал так но Delphi говорит (Undeclared identifier: "TThtead")


 
Vladimir Kladov ©   (2007-12-04 06:23) [15]

TThtead?

Вообще, всё написано в книге, в комментариях. Демо есь.


 
KOLBoss ©   (2007-12-04 08:31) [16]


> TMyThread = object( TThtead )

опечатка TThread надо

> http://www.kolnmck.ru/files/demo/demothread.7z

пример я смотрел но там не динамически

мож тогда кто небудь сможет перевести на кол.

http://uialexey.narod.ru/pingthread.rar


 
Vladimir Kladov ©   (2007-12-04 11:11) [17]

В KOL всё - динамически. Открывайте unit1_1.inc, и там процедура, в которой написано, как оно делается "статически". Пишите так же по свистку - будет динамически.


 
Дмитрий К ©   (2007-12-04 14:16) [18]


> мож тогда кто небудь сможет перевести на кол.

http://dmiko.mail333.com/other/Ping.dpr


 
KOLBoss ©   (2007-12-04 18:10) [19]


> http://dmiko.mail333.com/other/Ping.dpr

Большое спасибо. Хороший стил програмирования Я даже сначало неповерил что этот код может работать
У меня 28 672 байт получилось.



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

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

Наверх




Память: 0.51 MB
Время: 0.017 c
2-1229332381
9899100
2008-12-15 12:13
2009.01.25
Наследник от TGraphicControl


2-1228769620
programmer90
2008-12-08 23:53
2009.01.25
F7 vs F8


15-1227628921
Kerk
2008-11-25 19:02
2009.01.25
4:3 , 16:9 и другие


4-1204631197
Dmitry S
2008-03-04 14:46
2009.01.25
LDAP


2-1228767885
Platto
2008-12-08 23:24
2009.01.25
TDataSet