Programação assíncrona e multi-tarefa em MQL - página 35

 
Andrei Novichkov:

Por que não ler de fato sobre a bandeira na documentação? Em https://en.cppreference.com . E exemplos com discussão no stackoverflow.com. Normalmente uso estas fontes de informação e aconselho que façam o mesmo.

Por que, então, você quer participar da conversa se você não é responsável por suas palavras? Eu estava interessado na sua opinião, não nos espertalhões do manual. Saia do meu caminho. Eu posso ler as docas sem suas instruções. E eu não preciso de todo esse zoológico de futuro/promessa/assinatura para chamar a função em um só fio.

 
Vict:

Por que então você entraria em uma conversa se você não responde pelo que diz? Eu estava interessado na sua opinião, não nos espertalhões do manual. Saia do meu caminho. Eu posso ler as docas sem suas instruções. E eu não preciso de todo esse zoológico de futuro/promessa/assinatura para chamar a função em um só fio.

Você não está fazendo nenhum sentido. Você não sabe, eu lhe disse onde encontrar informações. E foi minha culpa. Seja um amigo dos livros com mais freqüência.
 
Andrei Novichkov:
Você não está fazendo nenhum sentido. Você não sabe, eu lhe disse onde encontrar informações. E foi minha culpa. Seja um amigo dos livros com mais freqüência.

Aparentemente, você também não sabe. Por que escrever sobre nada? Talvez eu não saiba, qual é o problema? Eu pedi uma opinião normal, ele me mandou para algum lugar.

Na lista negra, camarada.

 
Vict:

Aparentemente, você também não sabe. Por que escrever sobre nada? Talvez eu não saiba, qual é o problema? Eu pedi uma opinião normal, ele me disse para ir a algum lugar.

Na lista negra, camarada.

Eu não o enviei a lugar algum, nem sequer pensei nisso. Eu não respondo bem a tais perguntas com minhas próprias palavras, por isso escrevi sobre documentação. Mais uma vez, o que há para se ofender? Mas como você quiser, negro, tão negro.
 
Andrei Novichkov:
Eu não o enviei a lugar algum, eu não sonharia com isso. Sou ruim em responder tais perguntas com minhas próprias palavras, por isso escrevi sobre documentação. Mais uma vez, o que pode ofender? Mas como você quiser, negro, tão negro.

Bem, a documentação sobre isto é de pouca utilidade

std::lançamento::diferido a tarefa é executada no fio de chamada na primeira vez que seu resultado é solicitado (avaliação preguiçosa)
Eu realmente não entendo porque preciso de um milagre assim, eu posso facilmente passar um ponteiro para uma função no fio que preciso e calculá-lo lá sem nenhuma assimetria( std::lançamento::diferido).
 
Vict:

Eu realmente não entendo porque preciso de um milagre assim, eu posso facilmente passar um ponteiro para uma função em um fio que eu preciso e calculá-lo lá sem nenhuma assimetria( std::lançamento::diferido).

pode estar fora de tópico, mas:

notou que os exemplos da Microsoft são frequentemente escritos como código autodocumentado, de modo que eles escrevem construções incômodas que podem ser expandidas e substituídas pelo valor final (como, você vê o código, e você recebe tudo de uma só vez))) )

HH: Em C# exemplos infelizmente não é assim, várias vezes eu escrevi C# com a crença de que é de fato um análogo de C#++ com alguma propensãopara usar OOP, acontece que não é assim, não é C++ em absoluto, muitas vezes você não pode "chegar" aos campos de classe sem fundir a uma classe base, é por isso que eu tenho que usar construções longas e desajeitadas, em geral, a análise de bibliotecas prontas para C# é uma verdadeira aventura!

 

Note que, por padrão, estas duas bandeiras são aplicadas juntas, diferidas | async, o que retira a responsabilidade do desenvolvedor. Estamos falando da função do fio principal aqui, sim, você pode passar qualquer coisa, inclusive um ponteiro para uma função, ou um funerador, como argumento. E a bandeira diferida pode até mesmo implicar a execução síncrona da função. Veja, eu lhe disse, sou ruim em responder a tais perguntas com minhas próprias palavras). Você fica confuso. Normalmente, você deixa tudo por padrão e não se preocupa com estas bandeiras, talvez não seja correto.

 
Igor Makanu:

HH: Exemplos de C#, infelizmente, não são assim, várias vezes escrevi em C# confiante de que é, de fato, análogo ao C#++ com alguma tendência deuso obrigatóriodo OOP, mas afinal não é assim, não é C++ de todo, muitas vezes você não pode "chegar" aos campos de classe sem fundir à classe base, então você tem que usar estruturas longas e incômodas, em geral, a análise de bibliotecas prontas para C# é uma verdadeira aventura!

Bem, a MS tem muito boa documentação sobre Spurs. Tudo é explicado em detalhes. Não posso reclamar.
 
Vict:

Bem, a documentação sobre isto é de pouca utilidade

Eu realmente não entendo porque preciso de um milagre assim, eu posso facilmente passar um ponteiro para uma função em um fio que eu preciso e calculá-lo lá sem nenhuma assimetria( std::lançamento::diferido).
Bem, por exemplo, você precisa de uma função para calcular valores com os parâmetros atuais na pilha, mas não agora e não neste escopo. Então, você cria std::asinc, mas, aqui está o problema, um dos parâmetros é uma referência ou ponteiro para uma variável global, mas no cálculo você não precisará do valor atual desta variável, mas daquele que será mais tarde, é por isso que std::lounch::asinc e std::lounch:: são criadas máscaras de bitdiferidas e você pode passar o valor para funcionar agora e realizar o cálculo mais tarde.
 
Vladimir Simakov:
Bem, por exemplo, você precisa de função para calcular valores com parâmetros atuais na pilha, mas não agora e não neste escopo. Então, você cria std::asinc, mas aqui está o problema, um dos parâmetros é uma referência ou ponteiro para uma variável global, mas os cálculos não precisarão do valor atual desta variável, mas sim daquele que será mais tarde, por isso std::lounch::asinc e std::lounch:: são criadas máscaras bit diferidas e você pode passar valor para funcionar agora e realizar cálculos mais tarde.

Assim, posso assumir uma função que passo a assimilar, vincular argumentos a ela e armazená-la até a hora de chamá-la (ou enviá-la para outro fio). Que diferença faz se armazenar o futuro ou a produção da std::bind()?

A única explicação razoável que me vem à mente - controle manual sobre o número de linhas em execução no pool (se não confiarmos na assimetria padrão) - por exemplo, se o sistema ficar muito ocupado, pare de enviar trabalhos com a bandeira assimétrica, mande adiado.

Em geral, estou um pouco desapontado com a lentidão da async(), vou criar meu próprio pool de fios leves, me parece, será muito mais rápido.