ホームページ  >  記事  >  バックエンド開発  >  Go - コンテキスト付きの永久停止ループ

Go - コンテキスト付きの永久停止ループ

WBOY
WBOY転載
2024-02-06 08:45:07316ブラウズ

Go - 永远停止带有上下文的循环

質問の内容

次のような、永久に続くはずの非同期プロセスがあります。 リーリー

リクエストがサーバーに到達したときに、この for ループを停止できるようにしたいと考えています。

context.withcancel()

を使用する必要があることはわかっていますが、それを機能させるために統合する方法がわかりません。次の構文を知っています: リーリー しかし

asyncforevertask

は他のchからのシグナルによって実行されるのではなく、永久に実行されます。私は初心者なので、どんな助けでも大歓迎です。

正解

チャネルを使用してこれを行うことができます:
リーリー

キャンセルするには、チャンネルを閉じるだけです。チャネルが閉じられるのは 1 回だけであることを確認する必要があります。そうしないとパニックになってしまいます。

コンテキストを介してこれを行うこともできます:

リーリー ###または:### リーリー

停止するには、返された

cancel

関数を呼び出します:

リーリー

任意のタスクも停止する必要がある場合は、チャネルが閉じているかコンテキストが閉じているかを常に確認してタスクから戻る必要があります。

以上がGo - コンテキスト付きの永久停止ループの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。