![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Понадобилось мне передавать сообщения между потоками в многопоточном приложении. Т.к. я никогда раньше этого не делал пришлось изучить данный вопрос. В процессе изучения набросал небольшой примерчик. Выкладываю сюда, возможно кому-то будет интересно.
ЗЫЖ Забыл совсем, у меня EurikaLog установлен, так что у кого нет - удалите ExceptionLog из файла проекта. ЗЗЫЖ Delphi XE Последний раз редактировалось Aristarh Dark, 26.10.2012 в 10:35. |
|
#2
|
||||
|
||||
|
маленькое замечаньице:
правильней делать так: Код:
constructor TMyThread.Create(AListBox: TListBox); begin inherited Create(True); // init Resume; end; Код:
constructor TMyThread.Create(AListBox: TListBox); begin // init inherited Create(False); end; Последний раз редактировалось NumLock, 26.10.2012 в 11:01. |
|
#3
|
||||
|
||||
|
На самом деле нет. Поток создается с флагом CREATE_SUSPENDED и уже после отработки конструктора резюмится (или не резюмится, в зависимости от переданного параметра) в методе AfterConstruction.
|
|
#4
|
||||
|
||||
|
Эта функа может вообще в любой произвольный поток послать?
Цитата:
Последний раз редактировалось M.A.D.M.A.N., 26.10.2012 в 11:38. |
|
#5
|
||||
|
||||
|
Цитата:
![]() |
|
#6
|
||||
|
||||
|
Цитата:
Цитата:
|
|
#7
|
||||
|
||||
|
Цитата:
|
|
#8
|
||||
|
||||
|
да, каюсь, про AfterConstruction я прозевал с какой версии Они это изменили.
в примерах до сих пор: Код:
{ TSortThread }
constructor TSortThread.Create(Box: TPaintBox; var SortArray: array of Integer);
begin
FBox := Box;
FSortArray := @SortArray;
FSize := High(SortArray) - Low(SortArray) + 1;
FreeOnTerminate := True;
inherited Create(False);
end;c:\Program Files\Borland\Delphi7\Demos\Threads\SortThds.pas |