Tutti gli esempi che ho visto finora coinvolgere il blocco per ottenere il risultato (tramite l'operatore <-chan
).Come faccio a sapere se una goroutine è stata eseguita, senza bloccare?
mio attuale approccio consiste nel far passare un puntatore ad una struct:
type goresult struct {
result resultType;
finished bool;
}
cui il goroutine scrive al termine. Quindi è una semplice questione di controllare finished
ogni volta che conveniente. Hai alternative migliori?
Quello che sto davvero puntando è un sistema di segnale slot in stile Qt. Ho la sensazione la soluzione avrà un aspetto quasi banale (chan
s hanno sacco di potenziale inesplorato), ma io non sono ancora familiarità sufficiente con la lingua per capirlo.
questo non è più valido. – rog
dovete scrivere: selezionare { caso foo: = <-ch: default: } – rog