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

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

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

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

Нашел уже TThreadedQueUe<T>
...
Рейтинг: 0 / 0
Кроссплатформенный PostThreadMessage
    #39854350
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ж просто тред-сейф очередь, разве что с таймаутом ожидания вместо обычного бесконечного висения. Никаких "переключений контекста" там нет.
...
Рейтинг: 0 / 0
Кроссплатформенный PostThreadMessage
    #39854353
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 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
Кроссплатформенный PostThreadMessage
    #39854371
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Никаких "переключений контекста" там нет.не помню что бы где-то они были
...
Рейтинг: 0 / 0
Кроссплатформенный PostThreadMessage
    #39855184
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Нашел уже TThreadedQueue<T>Который до Delphi Tokio включительно содержит ошибку в методе Grow. В Rio ошибку исправили
...
Рейтинг: 0 / 0
Кроссплатформенный PostThreadMessage
    #39855290
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

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

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

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

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

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


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