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

Вниз

Пару вопросов по потокам   Найти похожие ветки 

 
Apolo ©   (2004-09-08 15:53) [0]

Ув. Мастера есть пару вопросов:

1. Прочитал статью http://www.delphimaster.ru/articles/panov/index.html

и вопрос по куску кода:
if Assigned(TMonDirThread(fMonDirMain.Tag)) then
TMonDirThread(fMonDirMain.Tag).Terminate;
 fMonDirMain.Tag := 0;


Обратите внимание на строки, выделенные жирным шрифтом.
Вместо того, чтобы создавать дополнительно переменную типа TMonDirThread, мы присвоили свойству формы Tag ссылку на созданный объект-поток, воспользовавшись явным приведением типа Integer(), так как любой указатель можно преобразовать к типу Integer.


Что значит ссылка на созданный обьект-поток?
Обясните пожалуйста поподробнее что храниться в fMonDirMain.Tag?
Там храниться какоето длинное целочисленное число, что ето число означает? и как понять TMonDirThread(fMonDirMain.Tag)?

2. Как мне, если надо, обновлять данные потока из основной программы? Тоже Synchronize?

3. Что мне необходимо, если я хочу организовать N одинаковых потоков (N заранее неизвестно)?
Мне надо хранить гдето список запущенных потоков?
Как мне им передавать в переменные какието значения, если потоки одинаковые?

Заранее спасибо!


 
Digitman ©   (2004-09-08 16:02) [1]


> Что значит ссылка на созданный обьект-поток?


то же что и ссылка на любой иной Делфи-объект

если бы речь шла не о потоках, а о некоем объекте произвольного класса, вопрос был бы тем же ?


> Как мне, если надо, обновлять данные потока из основной
> программы? Тоже Synchronize?


"программа" и "поток" - сущности не сравниваемые


> Что мне необходимо, если я хочу организовать N одинаковых
> потоков (N заранее неизвестно)?


ну вероятно -  массив ссылок на экземпляры объектов, описывающих каждый из потоков


 
Apolo ©   (2004-09-08 16:11) [2]


> то же что и ссылка на любой иной Делфи-объект
>
> если бы речь шла не о потоках, а о некоем объекте произвольного
> класса, вопрос был бы тем же ?

Да, вопрос тот-же.

Не могу понять, что значит ссылка .....

и как понять TMonDirThread(fMonDirMain.Tag)?


 
Digitman ©   (2004-09-08 16:34) [3]


> Не могу понять, что значит ссылка


результат выполнения конструирующего метода TSomeClass.Create(..) и есть ссылка на успешно созданный экземпляр класса TSomeClass

иными словами, то что возвращает этот оператор есть адрес в памяти структуры, описывающей вновь созданный объект класса TSomeClass


> как понять TMonDirThread(fMonDirMain.Tag)


здесь мы "командуем" компилятору (чтобы не ругался) : то ц/ч значение, которое хранится в св-ве Tag объекта, ссылка на который хранится в поле fMonDirMain, сей момент интерпретировать не просто как целое 32-битное знаковое число, а как указатель на объект класса TMonDirThread



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

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

Наверх





Память: 0.46 MB
Время: 0.036 c
4-1094300672
DeepProg
2004-09-04 16:24
2004.10.10
Таймер, устойчивый при полной загрузке процессора


4-1094727071
Erik1
2004-09-09 14:51
2004.10.10
Организация TimeOut для Overlapped чтения из com порта.


4-1093870145
wal
2004-08-30 16:49
2004.10.10
Стандартные ресурсы


1-1096277803
DelphiLexx
2004-09-27 13:36
2004.10.10
CreateThread


3-1094817179
mouse_web
2004-09-10 15:52
2004.10.10
Компонент соединения с базой Firebird





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