Diskussion zum Artikel "Marktsimulation (Teil 13): Sockets (VII)"

 

Neuer Artikel Marktsimulation (Teil 13): Sockets (VII) :

Wenn wir etwas in xlwings oder einem anderen Paket entwickeln, das das Lesen und Schreiben direkt in Excel ermöglicht, müssen wir beachten, dass alle Programme, Funktionen oder Prozeduren ausgeführt werden und dann ihre Aufgabe beenden. Sie bleiben nicht in einer Schleife, egal wie sehr wir uns bemühen, die Dinge anders zu machen.

Im vorangegangenen Artikel „Marktmodellierung (Teil 12): Sockets (VI)“ haben wir einen Python-Server erstellt, der auf mehrere Clients reagieren kann. Es funktionierte durch die Verwendung von Threads. Ich glaube, der Kerngedanke, wie Threads funktionieren, ist jetzt klar. Aber vor allem hoffe ich, dass Sie verstehen konnten, wie der Server in gewisser Weise einen kleinen Chat zum Laufen bringt. Der Zweck dieser Erklärungen über Sockets ist es nicht, alles über sie abzudecken. Wir möchten, dass Sie verstehen, wie Sockets funktionieren. Dieses Wissen wird später im Replay-/Simulationssystem benötigt.

Obwohl der Python-Server so funktioniert, dass er von mehreren Clients verwendet werden kann, ist er nicht für die Verwendung in Excel vorgesehen. Das heißt, wenn wir xlwings verwenden, um diesen Server in Excel zu integrieren, werden Sie Probleme bei der Interaktion mit Excel haben. Aber warum, wenn wir Threads verwenden, um ein Blockieren der Codeausführung zu vermeiden?

Dies ist eine etwas komplizierte Frage – zumindest für diejenigen, die sich nicht so gut damit auskennen, wie ein Programm ein anderes Programm verwendet, das nicht Teil davon ist. Vielleicht war dieser Satz etwas verwirrend, aber wir wollen versuchen, ihn zu verstehen. Wenn wir ein VBA-Skript in Excel verwenden, führen wir im Wesentlichen ein Programm aus. Wenn dieses Skript eine andere Anwendung aufruft, wartet Excel in der Regel darauf, dass die Ausführung beendet wird. Dies ist jedoch nicht immer der Fall. Um zu verhindern, dass Excel auf die Fertigstellung der Anwendung warten muss, können wir eine Anwendung verwenden, die nicht mit Excel verknüpft ist. Das heißt, wir haben Excel neben einer anderen Anwendung geöffnet, die mit VBA arbeitet. Beide können koexistieren, ohne um die CPU zu konkurrieren. Das ist ungefähr so, als würde man Excel bitten, Word zu öffnen. Es spielt keine Rolle, wenn Word abstürzt – das beeinträchtigt den Betrieb von Excel nicht.


Autor: Daniel Jose

 
MetaQuotes:

Veröffentlichter Artikel Marktsimulation (Teil 13): Steckdosen (VII):

Autor: Daniel Jose

Danke