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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.006 c
2-1228500289
lusuj
2008-12-05 21:04
2009.01.25
синтаксический контроль заданного оператора


15-1227755542
Slider007
2008-11-27 06:12
2009.01.25
С днем рождения ! 27 ноября 2008 четверг


1-1206970814
Дмитрий Белькевич
2008-03-31 17:40
2009.01.25
Настраиваемая транслитерация


2-1228733401
Впервые
2008-12-08 13:50
2009.01.25
Проблема при создании директории на Pascal


3-1213782368
tomkat
2008-06-18 13:46
2009.01.25
Запрос из шаблона FR





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