![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Synchronize [D5, 2000]
Призрак © (2006-05-13 03:03:00)У меня поток передаёт информацию основному через TQueue. Но если написать Synchronize(myqueue.push(ch)), как написано в одном левом мане, или даже Synchronize(mythread.QueuePush(ch)), то делфя говорит что тип не тот - не TThreadMethod... Я почитал, что же это за метод такой; написано - type TThreadMethod = procedure of object; procedure Synchronize(Method: TThreadMethod) ... Работает только то же самое без параметров. Что же это получается - нельзя синхронизовать методы которые параметр требуют?!.. Не верится...
Джо (2006-05-13 03:16:00) [1]> [3] Призрак © (13.05.06 03:14)
> спасибо...
> попробую так сделать. просто как-то уж очень криво выглядит...
Нормально выглядит. Ты в трэде конструктор сделай с параметрами, в конструкторе и присваивай значений полям. Отлично будет выглядеть, ручаюсь :)
Призрак (2006-05-13 03:14:00) [2]спасибо...
попробую так сделать. просто как-то уж очень криво выглядит...
Джо (2006-05-13 03:07:00) [3]> Что же это получается - нельзя синхронизовать методы которые
> параметр требуют?!.. Не верится...
Придется поверить, ибо это так.
А что смущает? Ведь эти параметры можно просто присвоить полям трэда, и всё.
Джо (2006-05-13 03:06:00) [4]> Но если написать Synchronize(myqueue.push(ch)), как написано
> в одном левом мане
А зачем читать какой-то "левый ман", если можно почитать Справку?
Параметром в Synchronize должен идти метод трэда, неимеющий параметров.