これは、Microsoft C++ Concurrency API のコンテキストにあります。
agent(名前空間の下に)と呼ばれるクラスがありConcurrency、それは基本的に純粋な仮想を派生させて実装するステートマシンですagent::run。
ここで、実行可能なagent::start状態にするを呼び出すのはあなたの責任です。次に、* またはそのバリアントのいずれかを呼び出して、メソッドを実際に実行します。agent::waitagent::run
しかし、なぜagent::done体内で呼び出さなければならないのでしょうか? つまり、明らかな答えは、agent::wait* は完了が通知されるか、タイムアウトが経過するまで待機するということですが...
設計者は何を意図していたのですか?agent::run戻ったときにエージェントを完了状態に入れないのはなぜですか? それが私が知りたいことです。電話をかけないという選択肢があるのはなぜdoneですか? タイムアウトが経過すると、待機メソッドは例外をスローします。