|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Эта функа может вообще в любой произвольный поток послать?
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось 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 Пишу программы за еду. __________________ |