Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
fort
8 / 8 / 2
Регистрация: 30.04.2013
Сообщений: 73
1

Как корректно обращаться из приложения к потоку

16.05.2013, 21:29. Просмотров 396. Ответов 3
Метки нет (Все метки)

Ребят. Нужно из приложения передавать управляющие инструкции в выполняющийся поток.
Если из потока мы вызываем Synchronize, то для передачи в поток используется она или другая функция? Стабильно ли будет работать следующая схема.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
TMyThread=class(TThread)
   private
     thCount: longint;
   protected
     procedure Execute;override;
   public
     m : TList;                                        <----- переменная обменник
   end;
 
procedure TMyThread.Execute;
var s: string;
   begin
     thСount := count +1;
     Synchronize(s :=  m[m.count -1]);                <-- считываю из нее инструкцию
     s := s + ' ' + IntToStr(thCount);
     Synchronize(form1.caption := s);
   end;
 
 
procedure form1.button1click(Sender: TObject)
  begin
     MyThread.m.add('Количество циклов потока: ');    <-- передаю в не инструкцию
  end;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 21:29
Ответы с готовыми решениями:

Как потоку узнать свой ID?
Добрый день. Хочу сделать чтоб поток при запуске записывал свой ID в мемо,...

Как обращаться к NetAPI из Delphi?
Nado napisat programmu kotoroya by pozvolyala zakryvat dostup k nekotorym...

Как в процедуре обращаться к элементам формы?
Добрый день. Пишу программу, и что б не писать 1 и тоже кучу раз, решил создать...

Как обращаться к элементу массива записей?
Здравствуйте подскажите нигде не могу найти мне нужно работать с массивом...

Как обращаться к программно создаваемой форме
Подскажите пожалуйста. Есть код - создание формы: procedure...

3
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
16.05.2013, 21:45 2
Цитата Сообщение от fort Посмотреть сообщение
Стабильно ли будет работать
Она вообще не будет работать, потому как работать нечему - код этот даже скомпилирован не будет.
0
fort
8 / 8 / 2
Регистрация: 30.04.2013
Сообщений: 73
16.05.2013, 21:53  [ТС] 3
Цитата Сообщение от mss Посмотреть сообщение
Она вообще не будет работать, потому как работать нечему - код этот даже скомпилирован не будет.
Это теоретический вопрос по схеме обмена, а не по синтаксису. Понятно что Synchronize в нужно вызовы процедур прописывать.
0
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
16.05.2013, 22:02 4
Synchronize - самый плохой способ и для обмена он собственно и не приспособлен.
см. PostThreadMessage(), QueueUserAPC()
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2013, 22:02

Как обращаться ко всем файлам папки по очереди?
В общем проблема такая - слил 2 папки с фотками, они оказались одинаковыми - в...

Обращение к потоку
Проблема такая, я динамически создаю несколько потоков for i:= 0 to N do...

Как создать поток вывода в RichTextBox Chart главной формы и как обращаться к этому потоку из других форм
Всем привет. Чтобы получить навыки многопоточного программирования, занялся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru