Главная страница
    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.008 c
15-1227981351
Genty
2008-11-29 20:55
2009.01.25
Использование библиотек


15-1227781745
Vudu
2008-11-27 13:29
2009.01.25
Пользователей обяжут проверять лицензионность используемых програ


2-1228931359
zoldatten
2008-12-10 20:49
2009.01.25
a^15 за 5 операций умножения


2-1229278700
Впервые
2008-12-14 21:18
2009.01.25
Странная ошибка после сортировки


6-1195497178
artkil
2007-11-19 21:32
2009.01.25
Блокировка сетевой активности на Winsock





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