Laden...

Weiterarbeiten, wenn die Ergebnisse einer (asynchronen) Methode vorliegen

Erstellt von unconvincible vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.513 Views
Thema geschlossen
U
unconvincible Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren
Weiterarbeiten, wenn die Ergebnisse einer (asynchronen) Methode vorliegen

Hi,
ich versuche mein eigenes kleines Admin Tool für BF3 zu machen, stoße dabei aber auf ein Problem (was ich auch bei anderen Sache hatte, nur nie die Lust das hinzubekommen ^^).
Wie genau funktioniert das mit async Sachen?

Also es läuft bei mir so ab.

Ich sende einen Befehl an den BF3 Server

SendCommand("admin.listplayers all");

Daraufhin sendet der Server mir eine Nachricht und ein Event wird bei mir ausgelöst.
Dieses Event nutzt die Nachricht und erstellt eine Liste mit allen Spielern für mich.

Und mit dieser Liste möchte ich dann arbeiten.

Also zum besseren Verständnis wo ich warten muss (aber kein Plan wie).

SendCommand("admin.listplayers all");
// hier muss jetzt irgendwie gewartet werden, bis das Event beendet worden ist, also die Liste erstellt worden ist.
// und hier mache ich dann irgendwas mit der Liste.

Ich hoffe ihr könnt mir helfen, weiß nicht so richtig wie ich das erklären soll ^^

MfG
unconvincible

742 Beiträge seit 2005
vor 9 Jahren

Warum musst du warten? Im Prinzip musst du doch nur irgendeine Lade-Animation anzeigen und wenn die Nachricht eintrifft, deine UI aktualisieren.

U
unconvincible Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren

Da ist nix mit einer Ladesimulation 😉 Das soll nur eine ganz einfache Version (nur für mich ^^) werden.
Aber wie geht das denn jetzt mit async (oder meintetwegen auch anders, habe aber viele Events und muss das auf diese Weise verarbeiten, also umständlich sollte das net sein 😉)

T
314 Beiträge seit 2013
vor 9 Jahren

Wer schickt wohin irgendwelche Daten? Was ist SendCommand?

U
unconvincible Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren

Das ist eine Funktion um etwas an den BF3 Server zu senden (habe ich oben aber bereits geschrieben).
Daraufhin reagiert der Server und sendet eine Nachricht, diese nutze ich und mache eine Liste. Diese Schritte sollen erst abgearbeitet werden, damit ich sie dann nutzen kann.

16.835 Beiträge seit 2008
vor 9 Jahren

Bis auf Leute, die sich mit BF und dessen Tools auskenne, weiß kein Mensch, was SendCommand ist.

Du musst schon sagen, was SendCommand genau tut oder wo man die Doku davon sehen kann.
a) kann es sein, dass SendCommand() einen Rückgabewert hat?!
b) kann es sein, dass SendCommand() einen Callback hat?!
c) kann es sein, dass einen entsprechenden allgemeinen Event gibt!?

Ohne solche Infos kann Dir da leider eher niemand hier helfen.
Obs am Ende Umständlich wird oder sehr lapidar hängt eben von der API ab, die DICE/EA da zur Verfügung stellt.

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo unconvincible,

ich habe mich gerade mit einem anderen Moderator beraten und beschlossen deinen Thread zu schliessen. Aus folgenden Gründen:

Du fragst in deinem ersten Post zwei Sachen:

  1. Wie läuft das mit der asynchronen Programmierung allgemein?
  2. Wie läuft das mit der asynchronen Programmierung bei einem konkreten Problem?

Da das asynchrone einen Standardfall darstellt möchte ich dich, auch im Hinblick auf die Eigeninitiative, darauf hinweisen dich damit auseinander zu setzen.

[FAQ] Warum blockiert mein GUI? Ist sicher ein guter Anlaufpunkt.

[Hinweis] Wie poste ich richtig? 1.1 und 1.1.1.

Sicherlich solltest du auch noch mal einen Blick in die ereignisgesteuerte Programmierung werfen. Das Event kannst du ja fangen und dann im Eventhandler weiterarbeiten.

Somit wäre die erste allgemeine Frage schon geklärt. Ich bin mir sicher, dass du dann bei dir weiterarbeiten kannst und bei einer wirklich konkreten Frage bitte ich dich einfach einen neuen Thread zu erstellen.

Gruss

Coffeebean

Thema geschlossen