![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Então inicializando emDLL_PROCESS_ATTACH: será suficiente ligar do programa mql?
Do programa mql para chamar suas funções localizadas na dll.
A partir do programa mql para chamar suas funções localizadas na dll.
E qual é o problema em descrever suas assinaturas? Você não puxa o winapi de alguma forma através de assinaturas de método?
Desculpe-me, por que descrevê-los? E desculpe, eu não puxei nada))
Desculpe-me, por que descrevê-los? E desculpe, eu não puxei nada))
Prezados usuários do fórum.
Andrey, acho que todos entendem que assíncronia e multithreading são coisas diferentes.
Como a função CreateThread() está descrita no WinAPI inluder, supunha-se que as roscas poderiam ser usadas.
Não há funções similares à CreateTask() descrita na IDE, portanto a suposição de possível escrita assíncrona de código desaparece por si só.
Portanto, a ênfase foi colocada nos fios. No entanto, como se viu, as funções descritas são apenas protótipos WinAPI.
Repito, a tarefa era usar WinAPI puro e o protótipo descrito CreateThread() era enganoso. Não se diz em nenhum lugar que estes são protótipos.
Todas as tarefas são diferentes, por isso cheguei ao método assíncrono e acredito que é melhor escrever sempre de forma assíncrona ou em linhas,
E desenvolveu o hábito de escrever sempre de forma assíncrona, permitirá escrever programas rápidos, e elevar seu nível como especialista.
É o princípio básico dos próprios desenvolvedores, a velocidade de execução dos programas mql, é o nosso tudo!
É uma pena que o mql não tenha tal característica,
Faço uma sugestão à administração mql para desenvolver funções mql padrão para programação assíncrona,
pois há problemas com os fios e, acima de tudo, com a segurança.
Para o modo assíncrono, acho que não há problemas de segurança.
Exemplo de lógica
Trabalhar a implementação do EventLoop em mql.
criar a classe MqlTask
Declarar as tarefas como obj. Objeto MqlTask;
create task = obj.CreateTask(MyFunc());
executar sucesso = tarefa -> Executar();
pausa execução sucesso = tarefa -> SleepMs(ms);
esperar pelo sucesso = tarefa -> espera(ms);
esperar indefinidamente sucesso = tarefa -> Esperar(0);
remover a tarefa após a execução da tarefa de exclusão;
e todos os tipos de conseguir que aStatus o controle.
Andrey, acho que todos entendem que modo assíncrono e multithreading são coisas diferentes.
O inluder do WinAPI contém a função CreateThread() e tínhamos assumido que os fios poderiam ser usados.
Como não há funções similares à CreateTask() descrita na IDE, não devemos considerar a possível escrita assíncrona de código.
Portanto, a ênfase foi colocada nos fios. No entanto, como se viu, as funções descritas são apenas protótipos WinAPI.
Repito, a tarefa era usar WinAPI puro e o protótipo descrito CreateThread() era enganoso. Não se diz em nenhum lugar que estes são protótipos.
Todas as tarefas são diferentes, por isso cheguei ao método assíncrono e acredito que é melhor escrever sempre de forma assíncrona ou em linhas,
E um hábito desenvolvido de escrever sempre de forma assíncrona, lhe permitirá escrever programas rápidos e elevar seu nível como especialista.
É o princípio básico dos próprios desenvolvedores, a velocidade de execução dos programas mql, é o nosso tudo!
Pena que não exista tal característica em mql, então farei uma sugestão à equipe de mql para desenvolver uma função padrão de mql
para programação assíncrona, pois há problemas com os fios e, acima de tudo, com a segurança.
Acho que não há obstáculos de segurança para o modo assíncrono.
Trabalhar a implementação de loops, e executar tarefas nesses loops.
Decida-se se deseja executar métodos de forma assíncrona ou multi-tarefa. Eu, por exemplo, trabalho com soquetes de forma assíncrona a partir de mql.
A fim de determinar o que é possível usar em mql e o que é proibido.
CreateThread() foi encontrado no inludes, então eu pensei que era possível trabalhar com fios.
Mas, como se tornou proibido o uso de fios, a escolha recai sobre a assimetria, mas como usar assimetria em mql também não é claro.
Sim, esse é exatamente o problema com as tomadas. A ajuda diz que não podem ser criados mais de 128 soquetes, o que limita a obtenção de informações sobre os estoques americanos, por exemplo.
E mesmo esses 128 soquetes não está claro como convertê-lo em modo assíncrono e evitar atrasos no processamento dos dados recebidos.
Por isso tive que buscar a solução do problema de outra forma,mas queria resolvê-lo em WinAPI puro, sem nenhuma dll autoescrita.
E como trabalhar de forma assíncrona em mql é interessante, se você tiver algum exemplo de trabalho, seria bom discuti-lo, se você puder compartilhar as informações.
Mas os métodos assíncronos padrão em mql ajudam que eu não tenha visto.
A fim de determinar o que é possível usar em mql e o que é proibido.
Encontrei o CreateThread() nos injetores do código, então pensei que poderia lidar com os fios.
Mas, como se tornou proibido o uso de fios, a escolha recai sobre a assimetria, mas como usar assimetria em mql também não é claro.
Sim, esse é exatamente o problema com as tomadas. A ajuda diz que não podem ser criados mais de 128 soquetes, o que limita a obtenção de informações sobre os estoques americanos, por exemplo.
E mesmo esses 128 soquetes não está claro como convertê-lo em modo assíncrono e evitar atrasos no processamento dos dados recebidos.
Por isso tive que buscar a solução do problema de outra forma,mas queria resolvê-lo em WinAPI puro, sem nenhuma dll autoescrita.
E como trabalhar de forma assíncrona em mql é interessante, se você tiver algum exemplo de trabalho, seria bom discuti-lo, se você puder compartilhar as informações.
Mas os métodos assíncronos padrão em mql ajudam que eu não tenha visto.
Eu li os participantes inteligentes e me pergunto...
Qual é o objetivo de todos esses artifícios?
Quando na MQL a multi-tarefa seria tão terrivelmente necessária? Para mim, o único uso seria o teste de estratégia, que é implementado da maneira padrão.
Idealmente, pode fazer sentido executar vários WebRequests, mas não acho que seja necessário fazer multi-tarefas.
Que tarefas exigem multithreading em primeiro lugar?