私が今まで見たすべての例は、結果を得るためにブロックすることを含んでいます(<-chan
演算子経由)。ブロックせずにゴルーチンが完了しているかどうかを確認するにはどうすればよいですか?
私の現在のアプローチは、構造体へのポインタを渡す必要:ゴルーチンが完了した時点で書き込み
type goresult struct {
result resultType;
finished bool;
}
。都合の良いときにはいつでもfinished
をチェックするのは簡単なことです。より良い選択肢がありますか?
私が本当に目指しているのは、Qtスタイルの信号スロットシステムです。私は解決策がほとんど些細な(chan
のは、潜在的なの)がありますが、私はそれを把握する言語ではまだ十分に精通していない見た目を持っています。
これはもう有効ではありません。 – rog
あなたは次のように書く必要があります。 { case foo:= <-ch: default: } – rog