Форум: "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