私はchan配列を返す別の関数を呼び出す関数を持っています。私は現在、ループのループをループの範囲内で実行しています。このループは、プログラムを実行して、無期限にチャネル更新を出力します。Goルーチンを無期限に実行
func getRoutes() {
for r := range rtu {
if r.Type == 24 {
fmt.Printf("Route added: %s via %s\n",r.Dst.String(),r.Gw.String())
} else if r.Type == 25 {
fmt.Printf("Route deleted: %s via %s\n",r.Dst.String(),r.Gw.String())
}
}
}
main()からgetRoutes()を呼び出すと、すべてが計画通りに機能しますが、アプリケーションをブロックしています。関数が全く呼び出されていないかのように表示されますが、私はをmain()
から呼び出してみました。
goルーチンを使用して非ブロッキングの方法でこの機能をバックグラウンドで実行するにはどうすればよいですか?
ここで、同じ質問からの私の答えは、しばらく前に尋ねた。 http://stackoverflow.com/questions/9543835/how-best-do-i-keep-a-long-running-go-program-running/38856572#38856572 - ランタイムpkgのメソッドを使用します。 – jmaloney