Asynchrone und mehrfädige Programmierung in MQL - Seite 5

 
Andrey Pogoreltsev:

Ganz zu schweigen von der Tatsache, dass man sich noch mit Synchronisationsobjekten beschäftigen muss. Brauchen Sie es? Wenn Sie das tun, ist es für Sie sehr einfach, eine DLL zu schreiben.

Das Hauptproblem liegt nicht in dem "...muss noch lernen".

Das Hauptproblem besteht darin, dass mit der Zahl der Vorbehalte auch die Gefahr kniffliger Fehler steigt, die nicht einfach zu berechnen sind.

Und all dies bereitet den Entwicklern zusätzliches Kopfzerbrechen.

Außerdem ist es gut zu prüfen, ob viele Menschen dieses Multithreading wirklich brauchen.

 
Georgiy Merts:

Das Hauptproblem ist nicht "... muss noch gelernt werden".

Das Hauptproblem ist, dass je mehr dieser Gimmicks, desto größer ist die Gefahr, trickreiche Fehler zu bekommen, die sehr schwer zu berechnen sind.

All dies bereitet den Entwicklern zusätzliches Kopfzerbrechen.

Außerdem ist es gut zu prüfen, ob viele Menschen dieses Multithreading wirklich brauchen.

Also, eine Sau und ein Pferd, und los geht's... der Morgendämmerung entgegen...

 
Roman:

Schade, dass mql keine solche Funktion hat,
DieVerwaltung wird vorschlagen, eine Standard-MQL-Funktion für asynchrone Programmierung zu entwickeln,
da es Probleme mit den Fäden und vor allem der Sicherheit gibt.
Für den asynchronen Modus gibt es meines Erachtens keine Sicherheitshindernisse.

Ich war gestern im Haus meiner Schwiegermutter, sie renovieren gerade die Wände, machen Sie das auch? - Öffnen Sie die Fenster, lüften Sie die Räume!

Roman:

Nichts ist im Weg! Die Aufgabe bestand darin, eine reine WinAPI zu verwenden. Ohne hausgemachte Dll !

Das Thema wurde erstellt, um Fragen der multithreaded mql-Programmierung zu diskutieren. Sie haben heute eine Art negativen Geist, was für eine Überschwemmung in dem Thema, das ich selbst erstellt habe?

Warum WinAPI? Lassen Sie mich Ihnen ein Geheimnis verraten, CLR ist auch "reines Windows", native Unterstützung für .NET-Bibliotheken mit "intelligenten" Funktionsimport wurde vor einem Jahr hinzugefügt, Sie kennen WinAPI, aber Sie können nicht einen Thread in .NET erstellen? )))))


Roman:

Bitte unterlassen Sie derartige Kommentare.

OK
 
Dmitry Fedoseev:

Nun denn, ein Pflug und ein Pferd, und weiter geht's... der Morgendämmerung entgegen...

Dimitri, haben Sie schon einmal versucht, mit einem Pflug und einem Pferd anzubauen und zu ernten?

Es gibt ebenso viele Feinheiten und Möglichkeiten für Fehler. Aber es ist viel teurer, wenn die Ernte verdirbt und man hungern muss...

Es gibt überall Probleme, und man muss den Nutzen gegen den Aufwand abwägen, insbesondere bei diesem Multithreading. Ich sehe nicht, wo es so direkt notwendig ist.

 

Ich habe nicht nur vorgeschlagen, dass der Autor sein erstes Programm in reiner WinAPIhttps://www.mql5.com/ru/forum/318593/page2#comment_12565043 schreiben sollte.

es gibt viele Informationen zu diesem Thema im Netz - zuerst schreiben Sie mit fertigen Header-Dateien (windows.h und so weiter), dann entfernen Sie diese Header-Dateien und nähern sich der geschätzten reinen WinAPI = ein großes Stück Code, das Prozess und Fenster registrieren kann, das Ereignisse empfangen und behandeln kann.... und es wird nur ein triviales Fenster sein, das nichts Nützliches tun kann, aber es wird verstehen, wie viel Arbeit Sie mit WinAPI machen müssen


Ich habe es vor etwa 15 Jahren ausprobiert (ich erinnere mich nicht mehr genau, aber ich weiß noch, dass es eine Einwahlverbindung war), und auf diese Weise sollte jedes "Ich bin Software-Ingenieur bei meiner Mutter" durchkommen Fragen loszuwerden und den Wunsch, Systemprogrammierern Ratschläge zu erteilen - Compiler-Entwickler

"Wenn man diesen Weg eingeschlagen hat, wird sofort klar, welche kolossale Arbeit Hunderte von Systemprogrammierern leisten, die Compiler und Bibliotheken für sie schreiben, und es wird klar, warum die Geschwindigkeit eine bequeme Benutzerfunktionalität erhalten hat, so dass jeder Anwendungsprogrammierer die Hilfe lesen kann und "mit 2 Klicks" das gewünschte Ergebnis erhält.


ZS: Im Allgemeinen verursacht der Mangel an Erfahrung, Wissen und Fähigkeiten eine weitere kognitive Verzerrung ))))

 
Georgiy Merts:

Das Hauptproblem ist nicht "... muss noch gelernt werden".

Das Hauptproblem ist, dass je mehr dieser Gimmicks, desto größer ist die Gefahr, trickreiche Fehler zu bekommen, die sehr schwer zu berechnen sind.

All dies bereitet den Entwicklern zusätzliches Kopfzerbrechen.

Außerdem ist es gut zu evaluieren: Wie viele brauchen wirklich dieses Multithreading?

Wie wir oben herausgefunden haben, brauchen wir Asynchronität für benutzerdefinierte Netzwerkanforderungen auf Socket-Ebene, zum Beispiel.

Aber alles kann mit Hilfe von WinAPI gelöst werden. Wenn die Leistung deines Bots von der Leistung des Rechners abhängt, auf dem er läuft, ist das bedauerlich, besonders bei dedizierten Servern:)
 
Georgiy Merts:

Dimitri, hast du schon einmal versucht, mit einem Pflug und einem Pferd anzubauen und zu ernten?

Es gibt ebenso viele Feinheiten und Möglichkeiten für Fehler. Aber es ist viel teurer, wenn die Ernte verdirbt und man hungern muss...

Es gibt überall Probleme, und man muss den Nutzen und den Aufwand abwägen. Insbesondere bei diesem Multithreading sehe ich nicht, wo es so direkt notwendig ist.

Was sind ein Pflug und ein Pferd? Die übliche Schaufel.

Wenn wir ernsthaft und ausgereift sein wollen, ist die erste Aufgabe, die sinnvollerweise in einen separaten Thread für asynchrone Arbeit verschoben werden sollte, WebRequest, aber im Allgemeinen ist es in Ordnung, man kann auch damit leben.

Die zweite Aufgabe ist das Training neuronaler Netze, die in Expert Advisor integrierte Auto-Optimierung. Wenn es möglich wäre, auf einfache Weise Threads aus Expert Advisor zu erstellen, würde dieses Thema einen großen Aufschwung erfahren.

 
Dmitry Fedoseev:

Wenn wir ernsthaft und ausgereift sind, ist die erste Aufgabe, die sinnvoll wäre, um in einem separaten Thread für asynchrone Arbeit setzen ist WebRequest, aber im Allgemeinen wird es tun, und wir können mit ihm leben.

Die zweite Aufgabe ist das Training neuronaler Netze, die in Expert Advisor integrierte Auto-Optimierung. Wenn es möglich wäre, auf einfache Weise Threads aus einem Expert Advisor heraus zu erstellen, würde dieses Thema einen schönen Schuss Leben bekommen.

Nur bei MQL werden beide Aufgaben durch den automatischen Start des Expert Advisors gelöst.

 
Igor Makanu:

Ich habe nicht nur vorgeschlagen, dass der Autor sein erstes Programm in reiner WinAPIhttps://www.mql5.com/ru/forum/318593/page2#comment_12565043 schreiben sollte.

es gibt viele Informationen zu diesem Thema im Netz - zuerst schreiben Sie mit fertigen Header-Dateien (windows.h und so weiter), dann entfernen Sie diese Header-Dateien und nähern sich der geschätzten reinen WinAPI = ein großes Stück Code, das Prozess und Fenster registrieren kann, das Ereignisse empfangen und behandeln kann.... und es wird nur ein triviales Fenster sein, das nichts Nützliches tun kann, aber es wird verstehen, wie viel Arbeit Sie mit WinAPI machen müssen


Ich habe es vor etwa 15 Jahren ausprobiert (ich erinnere mich nicht mehr genau, aber ich weiß noch, dass es eine Einwahlverbindung war), und auf diese Weise sollte jedes "Ich bin Software-Ingenieur bei meiner Mutter" durchkommen Fragen loszuwerden und den Wunsch, Systemprogrammierern Ratschläge zu erteilen - Compiler-Entwickler

"Wenn man diesen Weg eingeschlagen hat, wird sofort klar, welche kolossale Arbeit Hunderte von Systemprogrammierern leisten, die Compiler und Bibliotheken für sie schreiben, und es wird klar, warum die Geschwindigkeit eine bequeme Benutzerfunktionalität erhalten hat, so dass jeder Anwendungsprogrammierer die Hilfe lesen kann und "mit 2 Klicks" das gewünschte Ergebnis erhält.


ZS: Im Allgemeinen verursacht der Mangel an Erfahrung, Wissen und Fähigkeiten eine weitere kognitive Verzerrung ))))

Igor, nicht jeder wie du hat einen Abschluss in Programmierung. Wo haben dich deine Lehrer unterrichtet! Aus diesem Grund kommen Qualifikationen nicht in Frage.
Aus diesem Grund ist die Idee der reinen WinAPI verschwommen, ich nahm an, dass es einfacher sein wird, als Sie beschrieben haben.
Früher war mir das Programmieren völlig fremd, und erst dank mql habe ich angefangen, C/C++ ohne Lehrer und Tipps zu lernen!
Aber wie Sie sehen können, habe ich asynchrone Bedürfnisse selbst erreicht. Ja, ich weiß vielleicht etwas nicht, aber ich lerne alles, was ich wissen muss.
Ja, ich bin mit der .NET-Technologie nicht vertraut und will es auch nicht, ich habe C# satt, jeder hat seine eigene Portabilität von Sprachen.
Wo haben Sie gesehen, dass ich Entwicklern Ratschläge gebe? Es wurde vorgeschlagen, mql eine Reihe von Standardfunktionen für die Arbeit mit asynchronem Code hinzuzufügen.
Dies ist ein vernünftiger Vorschlag, ich weiß nicht, warum Sie so negativ darauf reagiert haben... Oder ist Ihre Art zu reden vielleicht immer so?
Wenn Sie eine solche Funktion nicht benötigen, tun es andere Benutzer. Es ist wie mit OOP, nicht jeder benutzt es, aber es ist da. Asynchronie scheint es in vielen Sprachen zu geben, aber nicht in mql.
Warum ist mql schlechter als andere Sprachen, weil es keine asynchronen Methoden hat? Die Frage nach den Threads ist geklärt, während die Asynchronität von Haus aus implementiert ist.

 
Roman:

Igor, nicht jeder wie du hat einen Abschluss in Programmierung. Wo haben dich deine Lehrer unterrichtet! Aus diesem Grund kommt die Qualifikation nicht in Frage.
Aus diesem Grund ist die Idee der reinen WinAPI verschwommen, ich nahm an, dass es einfacher sein wird, als Sie beschrieben haben.
Ich war vorher überhaupt nicht mit der Programmierung vertraut, und nur dank mql habe ich angefangen, C/C++ ohne Lehrer und Tipps zu lernen!
Aber wie Sie sehen können, habe ich die asynchronen Bedürfnisse selbst erreicht. Ja, ich weiß vielleicht etwas nicht, aber ich lerne alles, was ich wissen muss.
Ja, ich bin mit der .NET-Technologie nicht vertraut, und ich will es auch nicht, ich habe C# satt, jeder hat seine eigene Portabilität von Sprachen.
Wo haben Sie gesehen, dass ich Entwicklern Ratschläge gebe? Es wurde vorgeschlagen, mql eine Reihe von Standardfunktionen für die Arbeit mit asynchronem Code hinzuzufügen.
Dies ist ein vernünftiger Vorschlag, ich weiß nicht, warum Sie so negativ darauf reagiert haben... Oder ist Ihre Art zu reden vielleicht immer so?
Wenn Sie diese Funktion nicht benötigen, tun es andere Benutzer. Ich glaube, alle Sprachen haben jetzt Asynchronität, aber mql nicht.
Warum ist mql schlechter als andere Sprachen, weil es keine asynchronen Methoden hat? Nun, die Frage nach den Threads ist abgeschlossen, aber die Asynchronität ist machbar.

In MQL5 gibt es Asynchronität, zum BeispielOrderSendAsync.

Wie für die Interaktion mit dem Netzwerk oder Dateisystem - verwenden WinAPI, schrieb ich die Lösung oben. Ich denke, dafür ist alles vorhanden. Auf der Microsoft-Website können Sie nachlesen, wie Sie diese Methoden anwenden können. Was bleibt sonst noch unentdeckt?)

Grund der Beschwerde: