powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с потоками. Вопрос по синхронизации
51 сообщений из 51, показаны все 3 страниц
Работа с потоками. Вопрос по синхронизации
    #40046154
Фотография garun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть процедура, которая работает с VCL. К этой процедуре обращается несколько потоков. Вопрос такой, нужно обязательно заключать в TThread.Synchronize() вызов самой процедуры внутри потоков или же можно заключить в TThread.Synchronize() только нужный участок кода в уже вызываемой процедуре? То есть будет ли правильно работать такой код:


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure JobVCL;
begin
  TThread.Synchronize(nil, procedure
 begin
   // тут код работы с VCL
 end);
end;


TThread.CreateAnonymousThread(procedure
begin

 ...

 JobVCL;

... 

end).Start;
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046197
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как удобней, так и делай. Принципиальной разницы нет
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046202
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
garun,

Лучше вообще без синхронайз логику построить.
Пусть поток независимо занимается работой, можно обновлять какие-то общие данные-результаты для отображения.
А морда независимо что-то показывает. Иногда что-то берет из общих данных-результатов.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046203
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
garun,

Лучше вообще без синхронайз логику построить.
Пусть поток независимо занимается работой, можно обновлять какие-то общие данные-результаты для отображения.
А морда независимо что-то показывает. Иногда что-то берет из общих данных-результатов.
+1.
Лучше по таймеру в основном потоке проверять результаты расчетов и выводить что нужно.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046205
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock
garun,

Лучше вообще без синхронайз логику построить.
Пусть поток независимо занимается работой, можно обновлять какие-то общие данные-результаты для отображения.
А морда независимо что-то показывает. Иногда что-то берет из общих данных-результатов.

+
Слать из рабочих потоков форме сообщения и забыть про синхронайз
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046208
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
garun,

по твоему коду правильнее так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure JobVCL;
begin
   // тут код работы с VCL
end;


TThread.CreateAnonymousThread(procedure
begin

 ...
  TThread.Synchronize(JobVCL);

... 

end).Start;
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046260
Фотография garun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius,

"Правильнее" почему? Чем отличается работа моего кода от вашего?
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046265
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fr0sT-Brutal
Как удобней, так и делай. Принципиальной разницы нет

...только треды начинают работать по очереди.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046267
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Это однопоточная многопоточность.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046273
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
ъъъъъ,

Это однопоточная многопоточность.

Корпоративная.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046326
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
garun

"Правильнее" почему? Чем отличается работа моего кода от вашего?

по хелпу , отличается одним вызовом и личными предпочтениями ) а так по сути тоже самое
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046334
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
Fr0sT-Brutal
Как удобней, так и делай. Принципиальной разницы нет

...только треды начинают работать по очереди.

У него Job в середине цикла вызывается, судя по "..." перед и после, значит, здесь все нормально
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046338
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
У него Job в середине цикла вызывается, судя по "..." перед и после, значит, здесь все нормально
Особенно все будет "нормально" если основной поток висит где-нибудь на каком-нибудь ShowMessage или ином диалог боксе.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046596
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Особенно все будет "нормально" если основной поток висит где-нибудь на каком-нибудь ShowMessage или ином диалог боксе.
Поэтому надо вызывать Queue, а не Synchronize...
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046636
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

А теперь представь что это Queue вызывается допустим N раз в секунду, а юзер открыл какой-то диалог и ушел.

Вопрос 1: Что будет, если юзер закроет диалог весьма не скоро, а в очереди накопится огромное кол-во вызовов синхронизированной процедуры?
Вопрос 2: Через сколько времени в ОС кончатся ресурсы и все упадет, если юзер так и не закроет диалог?
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046653
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
А теперь представь что это Queue вызывается допустим N раз в секунду, а юзер открыл какой-то диалог и ушел.
Ничего.

Модальное окно не блокирует обработку Queue/Synchoronize
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046670
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Модальное окно не блокирует обработку Queue/Synchoronize
Ок, ты прав.
Но тогда выбери сам любую другую причину длительной занятости главного потока.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046681
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Но тогда выбери сам любую другую причину длительной занятости главного потока.
А тогда будет ломаться любой метод синхронизации с главным потоком
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046683
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
rgreat
А теперь представь что это Queue вызывается допустим N раз в секунду, а юзер открыл какой-то диалог и ушел.
Ничего.

Модальное окно не блокирует обработку Queue/Synchoronize
Даже если это модальное окно вызвалось из Queue/Synchoronize?
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046691
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Даже если это модальное окно вызвалось из Queue/Synchoronize?
Ага.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046705
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Если инициатор обновлений гуя сам главный поток, а результаты расчета другие потоки обновляют в промежуточном контейнере (в куче) - то не будет.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046719
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Если инициатор обновлений гуя сам главный поток,
Т.е. главный поток должен постоянно опрашивать кучу, а не изменилось ли что-нибудь?

Я знаю решение: в главном потоке вместо GetMessage использовать MsgWaitForMultipleObjects, а из вычислителя дергать SetEvent. Но в VCL такое не прикрутишь
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046720
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
alekcvp,
А теперь представь что это Queue вызывается допустим N раз в секунду, а юзер открыл какой-то диалог и ушел.
А что будет, если поток посылает SendNotifyMessage(), а юзер открыл APPL_MODAL сообщение и ушел?..
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046721
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Да. По таймеру в процессе расчетов.

Имхо так надежней и безопасней чем через sendmessage.
Ну и это кроссплатформенно, как бонус.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046727
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Ну и это кроссплатформенно, как бонус.
Queue/Synchronize nj;t rроссплатформенно
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046732
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Но не sendmessage.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046749
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
YuRock
Даже если это модальное окно вызвалось из Queue/Synchoronize?
Ага.
Странная синхронизация получается.
Первая процедура, вызванная в synchronize, еще не завершилась, а уже запустилась другая.
Это грозит крахом логики.

Впрочем, с обычными сообщениями - те же проблемы возможны. Я просто думал, что там реальная очередь выполнений.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046751
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockПервая процедура, вызванная в synchronize, еще не завершилась, а уже запустилась другая.

А ты всерьёз полагал, что Synchronize в двух разных потоках обязаны синхронизироваться не
только с главным потоком, но и между собой? Да, это полный крах логики.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046752
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
А что будет, если поток посылает SendNotifyMessage(), а юзер открыл APPL_MODAL сообщение и ушел?..

А ничего на самом деле. Окно висит, сообщения обрабатываются
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046756
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

Если бы у меня зависал главный поток, то я бы делал синхронизацию через промежуточный поток

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure TCalcThread.Execute;
begin
  ......
  SetEvent(NotifyEvent);
  ....
end;

procedure TNotifyThread.Execute;
begin
  while not Terminated do begin
    WaitForSingleObject(NotifyEvent);
    Synchronize(UpdateVCL)
  end;
end;

Хотя на реальном проекте у меня сделано так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
procedure TCalcThread.Execute;
begin
  ......
  PostMessage(MainForm.Handle, WM_MY_NOTIFY, 0, 0);
  ....
end;

procedure TMainForm.WMMyNotify(var AMsg: TMessage);
begin
  UpdateVCL;
  ClearMsgQueue(Handle, WM_MY_NOTIFY);
end;

function ClearMsgQueue(AWnd: HWND; AMsg: Cardinal): TMsg;
var
  LMsg: TMsg;
begin
  Result.message := 0;
  while PeekMessage(LMsg, AWnd, AMsg, AMsg, PM_NOREMOVE) and
        (LMsg.message <> WM_QUIT)
  do begin
    PeekMessage(LMsg, AWnd, AMsg, AMsg, PM_REMOVE);
    Result := LMsg;
  end;
end;

...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046765
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockПервая процедура, вызванная в synchronize, еще не завершилась, а уже запустилась другая.

А ты всерьёз полагал, что Synchronize в двух разных потоках обязаны синхронизироваться не
только с главным потоком, но и между собой? Да, это полный крах логики.Я, честно говоря, его использовал полтора раза в жизни.
Но была мысль, да.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046772
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

И зачем так все усложнять...
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046794
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

YuRockПервая процедура, вызванная в synchronize, еще не завершилась, а уже запустилась другая.

А ты всерьёз полагал, что Synchronize в двух разных потоках обязаны синхронизироваться не
только с главным потоком, но и между собой? Да, это полный крах логики.

А как они могут выполняться параллельно в одном потоке ? Квантовая однопоточность что-ли?
Типа выполняется один поток, но неизвестно какой? 😁

Разумеется, при условии что первый Synchronize не вызывает ProcessMessages().
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046806
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpА как они могут выполняться параллельно *в одном потоке*?

Рекурсивно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046825
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
И зачем так все усложнять...
Чтобы не лепить костыли в виде таймера
alekcvp
Разумеется, при условии что первый Synchronize не вызывает ProcessMessages().
Ему достаточно вызвать ShowModal/ShowMessage/Dialog.Execute
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046833
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Чтобы не лепить костыли в виде таймера

Я бы сказал что твой вариант мне кажется более костыльным.

Да и без таймера в обработке GUI на длительных задачах чаще всего все равно не обойтись.
По таймеру можно делать плавную анимацию прогресса даже если сами итерации в расчетном потоке редки или неравномерны.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046963
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Чтобы не лепить костыли в виде таймера
+1
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40046983
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
_Vasilisk_
Чтобы не лепить костыли в виде таймера
+1
в чём костыль то?
GUI должен заниматься GUI, расчётчик должен расчитывать - как ни парадоксально звучит
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047194
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
в чём костыль то?
GUI должен заниматься GUI, расчётчик должен расчитывать - как ни парадоксально звучит
Нехрена из GUI лезть в работающий поток. Поток сам знает когда и что надо отобразить при изменении своего состояния - вот пусть Queue и зовет
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047198
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerПоток сам знает когда и что надо отобразить при изменении своего состояния

Отображать прогресс на каждую итерацию цикла - самый надёжный способ получить невыносимые
тормоза.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047212
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Нехрена из GUI лезть в работающий поток.
Не надо туда лезть.
Поток должен складывать результат своей работы в специальный контейнер в который есть доступ у GUI потока.

В таком случае потоки работают независимо друг от друга и друг другу не мешают.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047295
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

поддерживаю. потоку входные данные где-то отдали и оставили его в покое.
поток считает. если есть необходимость продвигает прогресс через какой-то синхронный код (лучше, конечно, не за одну итерацию, но тут всяко бывает. бывает что итерации долгие)
когда досчитал результат, сложил куда-то в переменную и сказал гую что готово. всё.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047298
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
если есть необходимость продвигает прогресс через какой-то синхронный код

А я обычно использую контейнер с доступом к нему через обычную TCriticalSection.

При этом более важный поток заходит туда через .Enter a менее важный через TryEnter.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047319
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Отображать прогресс на каждую итерацию цикла - самый надёжный способ получить невыносимые тормоза.
Заметь, об отображении каждой итерации речи не идет. Весь вопрос в том, забирать ли данные только после того, как они гарантировано обновились или по таймеру прогревать процессор.
rgreat
При этом более важный поток заходит туда через .Enter a менее важный через TryEnter.
О! Вообще классно
Thread1 (GUI)Thread2 (Calc)OnTimerTryLockRead (-1)Lock (Wait)Unlock LockedWrite (0)UnlockOnTimerTryLockRead (0)Lock (Wait)Unlock LockedWrite (1)Unlockну подумаешь, случайно совпал интервал таймера и вычислений
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047327
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Отображать прогресс на каждую итерацию цикла - самый надёжный способ получить невыносимые
тормоза.
С дуру можно и хрен сломать. Или изобретать свои велосипеды/сиххронизации там где не надо
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047376
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Что у тебя в таблице за цифры? Не понятно что не так.

Чего страшного от того что забор данных может изредка совпасть с сохранением результата расчета?
Либо GUI тред в этот раз не отработает, либо Calc тред совсем немного подождет.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047395
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
_Vasilisk_,

Что у тебя в таблице за цифры? Не понятно что не так.

Чего страшного от того что забор данных может изредка совпасть с сохранением результата расчета?
Либо GUI тред в этот раз не отработает, либо Calc тред совсем немного подождет.
Теоретически возможно, что GUI тред будет постоянно ломиться в тот момент, когда ресурс залочен.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047398
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

Вообще, в нормально написанном ПО время сохранения данных в "экспортный" контейнер должно составлять исчезающе малую честь времени в сравнении с периодом цикла таймера GUI и цикла таймера Calc потока.

Так что вероятность постоянного пропуска цикла должна быть порядка уровня шанса внезапного взрыва сверхновой на солнце.

Если боязно можно обойтись и без TryEnter, но тогда стоит написать код так что бы запись и чтение из контейнера занимали около нуля микросекунд.
Т.е. Lock, Assign, Unlock.

Ну или вообще TInterlocked.Exchange без всяких критических секций.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047399
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и собственно если GUI поток обновляет данные раз в секунду а Calc поток раз в минуту то максимально теоретически возможно пропустить только одно из 60 обновлений GUI.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047401
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Если боязно можно обойтись и без TryEnter, но тогда стоит написать код так что бы запись и чтение из контейнера занимали около нуля микросекунд.
Т.е. Lock, Assign, Unlock.
Так и надо делать. При чем тут боязно.
Один поток пишет иногда какую-нибудь сотню байт, gui - читает эти байты раз в секунду.
Даже если произойдет блокировка - она продлится в районе 0-16 мс. В любом случае времени это займет столько. Нисколько, короче. При этом будет гарантия обновления экрана.
...
Рейтинг: 0 / 0
Работа с потоками. Вопрос по синхронизации
    #40047402
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

Честно сказать я сам себя запутал, ибо TryEnter предполагался на случай ленивого варианта когда передаточного контейнера вообще нет и расчетный поток постоянно работает в фоне с редкими включениями на перерасчет, а GUI поток читает результат прямо из переменных расчетного потока.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с потоками. Вопрос по синхронизации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]