Ich arbeite an einem kleinen Projekt, wo ich zwei asynchrone Anrufe direkt hintereinander machen muss.Asynchrone Anrufe Neuling Frage
Mein Code sieht wie folgt aus etwas:
AsynchronousCall1();
AsynchronousCall2();
Das Problem, das ich habe, ist, dass beide Anrufe überall von ein bis zwei Sekunden dauern auszuführen und ich weiß nie, was ein letztes beenden wird. Nach was ich suche, ist eine Weise, zu bestimmen, wer zuletzt beendet. Wenn Call1() zuletzt beendet wird, mache ich eine Sache. Wenn Call2() zuletzt beendet wird, mache ich eine andere Sache.
Dies ist eine Race-Bedingung, die darauf wartet, zu passieren. Können Sie beschreiben, welches Problem Sie lösen wollen, vielleicht können wir uns einen besseren Ansatz ausdenken. – Juliet
Sie können immer eine Sperre verwenden, um sicherzustellen, dass nur einer von ihnen einen Code eingibt. Aber können Sie etwas detaillierter erklären, was Sie erreichen wollen? – Groo
@Juliet: Wenn dies eine Antwort gewesen wäre, hätte ich es gewählt. Wenn ich das im Code sah, den ich behielt, vor allem mit der Zeitabhängigkeit, mit der ich zuletzt fertig war, würde ich es als Antipattern betrachten, es sei denn, der gesamte Punkt des Programms/Moduls sollte bestimmen, welche Aktivität länger dauerte. (Wenn das der Fall wäre, hätte ich beide Anrufe selbst und überprüfe einfach die Ergebnisse.) –