MQLによる非同期・マルチスレッドプログラミング - ページ 5

 
Andrey Pogoreltsev:

もちろん、同期オブジェクトについて学ばなければならないことは言うまでもありません。必要ですか?そうすれば、DLLを書くのはとても簡単です。

一番の問題は「...まだまだ勉強しなければならない」にあるのではありません。

一番の問題は、こうした注意点がすべて増えると、計算が簡単でないトリッキーなエラーが発生する危険性が高まることです。

そして、これらすべてが、開発者にとってさらなる頭痛の種となるのです。

さらに、多くの人がこのマルチスレッドを本当に必要としているかどうかを評価するのも良いことです。

 
Georgiy Merts:

一番の問題は「...まだ学んでいない」ことではありません。

一番の問題は、こうしたギミックが増えれば増えるほど、計算が大変なトリッキーエラーが発生する危険性が高まることです。

これらはすべて、開発者にとってさらなる頭痛の種となる。

それに、多くの開発者が本当にマルチスレッドを必要としているかどうかを知ることができるのも良いことです。

さて、雌豚と雌馬、そして出発だ...。朝の夜明けに向かって...

 
Roman:

mqlにはそのような機能がないのが残念です。
管理者は、非同期プログラミングのための標準的なmql関数を開発することを提案 する。
スレッドの問題や、なによりもセキュリティの問題があるので。
非同期モードについては、セキュリティ上の支障はないと思います。

昨日、義母の家に行ったら、壁をリフォームしていたのですが、同じようにしているのでしょうか?- 窓を開けて、部屋を換気してください。

ローマン

邪魔なものは何もない!課題は、純粋なWinAPIを使うことでした。自作DLなし!?

このトピックは、マルチスレッドのmqlプログラミングの問題を議論するために作られました。 今日は何かネガティブな精神を持っているようですが、私が自分で作ったトピックにどんな氾濫があるのでしょうか?

なぜWinAPIなのかというと、CLRも「ピュアWindows」であり、「スマート」な関数インポートによる.NETライブラリのネイティブサポートが1年前に追加され、WinAPIは知っていても.NETでスレッドを作れないのでは?)))))


ローマン

そのようなコメントはご遠慮ください。

よっしゃー
 
Dmitry Fedoseev:

では、鋤と馬と、そして前へ......。朝の夜明けに向かって...

ディミトリ、耕運機と馬で栽培と収穫をやってみたか?

それと同じぐらい、微妙なニュアンスやミスの機会も多いのです。でも、作物が枯れておなかがすいたら、もっと高くつく......。

どこにでも問題はあるわけで、その労力に対するメリットを測らなければなりません。 特に、今回のマルチスレッドについては。 そんなに直接的に必要なところはないのではと思います。

 

私はただ、著者が最初のプログラムを純粋なWinAPIhttps://www.mql5.com/ru/forum/318593/page2#comment_12565043 で書くようにと言ったわけではありません。

この話題については、ネット上にたくさんの情報があります。まず、すぐに使えるヘッダーファイル(windows.hなど)を使って書き、次にこれらのヘッダーファイルを削除して、大事な純粋なWinAPI=プロセスやウィンドウを登録でき、イベントを受け取って処理できる大きなコードの塊に近づいていきます...。で、何の役にも立たないただのウィンドウになりますが、WinAPIを使ってどれだけの作業をする必要があるのかが理解できます


15年ほど前に試したことがあるのですが(正確には覚えていませんが、ダイヤルアップ接続だったことは覚えています)、この方法なら「私はお母さんのところのソフトウェアエンジニア です」というのも通るはずです。システムプログラマやコンパイラ開発者へのアドバイスがしたい。

"この方法を行っている"、それは一度にコンパイラとそれらのためのライブラリを記述するシステムプログラマの数百の巨大な仕事、それは速度が便利なユーザー機能を与えられている理由は明らかであろう、任意のアプリケーションプログラマがヘルプを読み、 "2クリック "で目的の結果を得ることができますように


SZZ: 一般的に、経験、知識、スキルの不足が、別の認知のゆがみを 引き起こした ))))

 
Georgiy Merts:

一番の問題は「...まだ学んでいない」ことではありません。

一番の問題は、こうしたギミックが増えれば増えるほど、計算が大変なトリッキーエラーが発生する危険性が高まることです。

これらはすべて、開発者にとってさらなる頭痛の種となる。

さらに - 評価するのは良いことです - この非常にマルチスレッドを本当に必要としている人は何人いるのでしょうか?

上記でわかったように、ソケットレベルでのカスタムネットワークリクエストなどでは非同期が必要です。

しかし、すべてはWinAPIによって解決することができるのです。ボットのパフォーマンスが実行中のマシンの性能に依存する場合、特に専用サーバーの 場合は残念なことになります:)。
 
Georgiy Merts:

ディミトリ、耕運機と馬で作物を育て、収穫してみたことはありますか?

それと同じぐらい、微妙なニュアンスやミスの機会も多いのです。でも、作物が枯れておなかがすいたら、もっと高くつく......。

特に、このマルチスレッドについては、それほど直接的に必要な部分とは思えません。

鋤と馬ってなんだ?いつものシャベル。

もし私たちが真面目に成熟しているならば、非同期作業のために別のスレッドに移動することが有用である最初のタスクはWebRequest ですが、一般的にそれはOKです、あなたはそれと一緒に暮らすことができます。

2つ目の作業は、Expert Advisorに搭載されている自動最適化機能であるニューラルネットワークの学習です。Expert Advisorから簡単にスレッドを作成できるようになれば、このトピックは大きく活気づくと思います。

 
Dmitry Fedoseev:

真面目に大人しくしていれば、非同期作業用に別スレッドに入れた方が便利なタスクはまずWebRequest ですが、一般的にはそれで済んでしまうので、それで我慢しています。

2つ目の作業は、Expert Advisorに搭載されている自動最適化機能であるニューラルネットワークの学習です。Expert Advisorから簡単にスレッドを作成できるようになれば、このテーマも活気づくと思うのですが。

MQLのみ、Expert Advisorを自動的に起動することで両方のタスクを解決しています。

 
Igor Makanu:

私はただ、著者が最初のプログラムを純粋なWinAPIhttps://www.mql5.com/ru/forum/318593/page2#comment_12565043 で書くようにと言ったわけではありません。

この話題については、ネット上にたくさんの情報があります。まず、すぐに使えるヘッダーファイル(windows.hなど)を使って書き、次にこれらのヘッダーファイルを削除して、大事な純粋なWinAPI=プロセスやウィンドウを登録でき、イベントを受け取って処理できる大きなコードの塊に近づいていきます...。で、何の役にも立たないただのウィンドウになりますが、WinAPIを使ってどれだけの作業をする必要があるのかが理解できます


15年ほど前に試したことがあるのですが(正確には覚えていませんが、ダイヤルアップ接続だったことは覚えています)、この方法なら「私はお母さんのところのソフトウェアエンジニア です」というのも通るはずです。システムプログラマやコンパイラ開発者へのアドバイスがしたい。

"この方法を行っている"、それは一度にコンパイラとそれらのためのライブラリを記述するシステムプログラマの数百の巨大な仕事、それは速度が便利なユーザー機能を与えられている理由は明らかであろう、任意のアプリケーションプログラマがヘルプを読み、 "2クリック "で目的の結果を得ることができますように


ZS: 一般的に、経験や知識、スキルの不足が、別の認知の歪 みを引き起こした ))) 。)

イゴール、あなたのようにプログラミングの学位を持っている人ばかりではありません。先生はどこで教えてくれたんですか!だから、資格は論外なのです。
このため、純粋なWinAPIという考え方は曖昧で、あなたが説明したよりも、もっとシンプルなものになると思っていました。
以前はプログラミングに全く無縁だった私が、先生やヒントなしにC/C++を学び始めたのは、mqlのおかげです
しかし、ご覧の通り、自力で非同期のニーズにたどり着きました。そう、私は何も知らないかもしれないが、必要なことはすべて学んでいるのだ。
そう、私は.NET技術に詳しくないし、そうしたいとも思わない、C#にはうんざりしている、みんなそれぞれ言語のポータビリティを持っているのだ。
私が開発者にアドバイスしているところをどこで見ましたか?mqlに非同期コードを扱うための標準関数群を追加することが提案されました。
これは賢明な提案だ、なぜそんなに否定的な反応をするのか分からない...。それとも、あなたの話し方はいつもこうなのでしょうか?
あなたがそのような機能を必要としなくても、他のユーザーが必要としているのです。OOPと同じで、みんなが使うわけではないけど、あるんです。非同期は現在多くの言語に存在するようですが、mqlにはありません。
非同期メソッドを持たないmqlは、他の言語よりどのように悪いのでしょうか?スレッドに関する質問は終了し、非同期はいきなり実装されます。

 
Roman:

イゴール、あなたのようにプログラミングの学位を持っている人ばかりではありません。先生はどこで教えてくれたんですか!だから、資格は論外なんです。
このため、純粋なWinAPIという考え方は曖昧で、あなたが説明したよりも、もっとシンプルなものになると思っていました。
それまでプログラミングに全く馴染みのなかった私が、先生やヒントなしにC/C++を学び始めたのは、mqlのおかげです!
しかし、ご覧の通り、自力で非同期のニーズに到達しました。そう、私は何も知らないかもしれないが、必要なことはすべて学んでいるのだ。
そう、私は.NETの技術に詳しくないし、そうしたいとも思わない、C#にはうんざりしている、みんなそれぞれ言語のポータビリティを持っているのだ。
私が開発者にアドバイスしているところをどこで見ましたか?非同期コードを扱うための標準関数群をmqlに追加することが提案されています。
これは賢明な提案だ、なぜそんなに否定的な反応をするのか分からない...。それとも、あなたの話し方はいつもこうなのでしょうか?
あなたがこの機能を必要としなくても、他のユーザーが必要としているのです。今はどの言語にも非同期があると思いますが、mqlにはありません。
非同期メソッドを持たないmqlは、他の言語よりどのように悪いのでしょうか?さて、スレッドに関する質問は終了しましたが、非同期は実現可能です。

MQL5では、OrderSendAsyncなどの 非同期があります。

ネットワークやファイルシステムとの相互作用については、WinAPIを使用し、私は上記の解決策を書きました。そのためにすべてがあると思います。これらの方法については、マイクロソフトのサイトで紹介されています。他に未公開のものは?)