文章 "自己动手开发多线程异步 MQL5 WebRequest" - 页 7

 

示例 multiwebclient 中的文件只在点击图表时发送一次,如果多次点击,则不会向 http 服务器发送请求。(我将研究您的资料来源)也许有必要不在 INIT 中预先创建,而是在每次点击图表时创建。

我以为关闭图表或关闭终端 后对象就会被删除。

您有发送 json 消息的示例吗?另外,在关闭图表 时进行检查也不是多余的。

JSON 软件

例如,创建一个 json 类并在其中填入设置器。添加数组、添加元素、数据类型(这并不简单)。

还有一个例子,一个可用的 EA,这样您就可以从您的函数中进行发送,例如,当出现一个新的条形图时,就会发送一个 JSON 请求。

很多人会觉得这很有用。

 
Sergei Poliukhov 关闭终端 后对象就会被删除。

您有发送 json 消息的示例吗?另外,在关闭图表 时进行检查也不是多余的。

JSON 软件

例如,创建一个 json 类,并在其中填充设置器。添加数组、添加元素、数据类型(这并不简单)。

还有一个例子,一个直接工作的顾问,这样你就可以从你的函数中进行发送,例如,当出现一个新的条形图时,就会发送一个 JSON 请求。

很多人会觉得这很有用。

在撰写本文时,所有功能都 100% 正常运行,即在点击时向默认的 3 台服务器并行发送 3 个请求。您需要通过设置和日志来发现问题。图表关闭处理后会向管理器发送通知--请查看代码。

void OnDeinit(const int reason)
{
  if(manager)
  {
    Print("WebRequest Pool Manager closed, ", ChartID());
    for(int i = 0; i < pool.size(); i++)
    {
      if(CheckPointer(pool[i]) == POINTER_DYNAMIC)
      {
        // 让工人知道不再需要他们了
        EventChartCustom(pool[i].getChartID(), TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
      }
    }
    GlobalVariableDel(GVTEMP);
  }
  else
  {
    Print("WebRequest Worker closed, ", ChartID());
    // 告知经理该工人已离职
    EventChartCustom(ManagerChartID, TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
    ObjectDelete(0, OBJ_LABEL_NAME);
    ChartClose(0);
  }
  Comment("");
}

文章发布后,在讨论区 发布了通过图表对象启动的改进版本。

网站上有很多关于 json 的资料,但我还没有发表过关于 "纯 "json 的工作,现在也没有时间去做。

Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками" - Запустите WebRequest с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником.
Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками" - Запустите WebRequest с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником.
  • 2018.11.12
  • Реter Konow
  • www.mql5.com
потому что не получается передать в них параметр при запуске - похоже. по аналогии с экспертами - похоже на счастливый случай. Выкладываю альтернативный вариант запуска веб-запросов - с помощью объектов-графиков