Alle Beispiele, die ich bisher gesehen habe Blockierung beinhalten das Ergebnis (über den <-chan
Operator) zu erhalten.Wie finde ich heraus, ob eine Goroutine durchgeführt wurde, ohne zu blockieren?
Mein aktueller Ansatz beinhaltet einen Zeiger auf eine Struktur übergeben:
type goresult struct {
result resultType;
finished bool;
}
welche die goroutine nach Abschluss schreibt. Dann ist es einfach, finished
zu überprüfen, wann immer es bequem ist. Hast du bessere Alternativen?
Was ich bin mit dem Ziel wirklich für ein Qt-Stil Signal-Slot-System. Ich habe das Gefühl, die Lösung fast trivial aussehen (chan
s haben viele unerforschtes Potential), aber ich bin noch nicht vertraut genug mit der Sprache, es herauszufinden.
das ist nicht mehr gültig. – rog
Sie schreiben: wählen { Fall foo: = <-ch: default: } – rog