MQL4 - как организовать асинхронные вычисления? - страница 3

 
Каждой проблеме - свое решение, универсальных есть, конечно. Но специализированные лучше.
 
Zhunko:

Каналы тоже хорошо. Можно между компами общение устроить.

Да, там убого всё. Хотя, если нужна атомарность кода, то нормально.

Может и не убого, т.к. детально с маппингом пока не копался? Но выяснилось, что каналы все таки больше подходят для моей задачи:

  1. Режим передачи данных потоковый, т.е. хоть байт передавай, хоть гигабайт в канал запихивай
  2. Отправитель и получатель известны
  3. Не надо лепить костыли, чтобы удостовериться, что отправитель не работает в режиме Валеры, т.е. отправляет информацию, но не знает, дошла она до получателя или тот уже отвалился.
 
Reshetov:

Может и не убого, т.к. детально с маппингом пока не копался? Но выяснилось, что каналы все таки больше подходят для моей задачи:

  1. Режим передачи данных потоковый, т.е. хоть байт передавай, хоть гигабайт в канал запихивай
  2. Отправитель и получатель известны
  3. Не надо лепить костыли, чтобы удостовериться, что отправитель не работает в режиме Валеры, т.е. отправляет информацию, но не знает, дошла она до получателя или тот уже отвалился.

1. С маппингом всё также.

2. Тоже самое. Объекты можно именовать.

3. Также не надо костылей для маппинга.

4. Всё же, если требуется в пределах одного компа передавать данные, то маппинг самое предпочтительное. Самый быстрый и надёжный способ.

Здесь есть продуманное решение для маппинга. Там же анонс новой библиотеки. Может на днях выложу. Созрел :-))

 
Zhunko:

1. С маппингом всё также.

2. Тоже самое. Объекты можно именовать.

3. Также не надо костылей для маппинга.

4. Всё же, если требуется в пределах одного компа передавать данные, то маппинг самое предпочтительное. Самый быстрый и надёжный способ.

Здесь есть продуманное решение для маппинга. Там же анонс новой библиотеки. Может на днях выложу. Созрел :-))

Самый надежный способ - это реализация штатными средствами без левых танцев с бубном.
Renat:

Кстати, мы открываем прямой путь использования именованных Pipe каналов в MetaTrader 5, что позволяет делать чистые и безопасные интеграции с другими системами.

То есть, можно легко общаться со своими собственными системами без применения DLL.

Кто в теме - может прямо сейчас в текущем билде попробовать подключаться к сторонним именованным пайпам:

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

CFileBin  ExtPipe;

if(ExtPipe.Open("\\\\.\\pipe\\MyPipeChannel",FILE_READ|FILE_WRITE|FILE_BIN)!=INVALID_HANDLE)
  {
   Print("Pipe opened");
  
   if(ExtPipe.ReadString(command))
     {
      //--- отошлем
      if(ExtPipe.WriteString(answer))   
        {
        }
     }
   ...
  }
См. Использование MQL5 для торговли на МТ4
Причина обращения: