Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кроссплатформенный PostThreadMessage / 11 сообщений из 11, страница 1 из 1
27.08.2019, 17:19
    #39854310
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
Есть, что-то из коробки, чем можно заменить PostThreadMessage. Чтобы работало под линукс?

Цель переключиться в контекст указанного потока и передать какой-то указатель. Подобное делает TThreadQueue, но она работает только в главный поток

С уважением, Vasilisk
...
Рейтинг: 0 / 0
27.08.2019, 17:24
    #39854313
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
_Vasilisk_,

обычная очередь, так называемый канал, + поток который её разбирает
...
Рейтинг: 0 / 0
27.08.2019, 17:27
    #39854315
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
kealon(Ruslan),

Нашел уже TThreadedQueUe<T>
...
Рейтинг: 0 / 0
27.08.2019, 18:33
    #39854350
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
Это ж просто тред-сейф очередь, разве что с таймаутом ожидания вместо обычного бесконечного висения. Никаких "переключений контекста" там нет.
...
Рейтинг: 0 / 0
27.08.2019, 18:52
    #39854353
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
Василий 2Это ж просто тред-сейф очередь, разве что с таймаутом ожиданияТам много чего есть
Василий 2Никаких "переключений контекста" там нет.Ну не все коту масленица. Иногда приходится программировать
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TMyThread.Execute;
var
  LMsg: TMessage;
begin
  while True do begin
    LMsg := FQueue.PopItem;
    if FQueue.ShutDown then
      Exit;
    // Process
  end;
end;
...
Рейтинг: 0 / 0
27.08.2019, 19:32
    #39854371
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
Василий 2Никаких "переключений контекста" там нет.не помню что бы где-то они были
...
Рейтинг: 0 / 0
29.08.2019, 14:32
    #39855184
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
_Vasilisk_Нашел уже TThreadedQueue<T>Который до Delphi Tokio включительно содержит ошибку в методе Grow. В Rio ошибку исправили
...
Рейтинг: 0 / 0
29.08.2019, 17:23
    #39855290
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
_Vasilisk_,

да, за дельфийским RTL глаз да глаз нужен
но в принципе для кросплатф. очереди списка\массива и классов из System.SyncObjs хватает с избытком

берёшь какой нить шарповый или явовский класс и заполняешь, как по учебнику, его реализацию
...
Рейтинг: 0 / 0
29.08.2019, 20:21
    #39855354
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
_Vasilisk_,

исходники обычно можно править.
...
Рейтинг: 0 / 0
30.08.2019, 14:38
    #39855678
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
makhaonисходники обычно можно править.Спасибо, кэп! Только в данном случае нельзя. Ломается компиляция System.Classes (Unit System.Classes was compiled with a different version of System.Generic.Collections). Пришлось TThreadedQueue выносить в отдельный модуль и уже там править

kealon(Ruslan)но в принципе для кросплатф. очереди списка\массива и классов из System.SyncObjs хватает с избыткомВ принципе для всего хватает ассемблера. Но хочется поменьше работы
...
Рейтинг: 0 / 0
30.08.2019, 15:12
    #39855702
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кроссплатформенный PostThreadMessage
_Vasilisk_,

Пожалуйста. авторЛомается компиляция System.Classes Тоже бывает.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кроссплатформенный PostThreadMessage / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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