この質問に引っ掛かりたいのですが、おそらく別の角度から言い換えてください。
詐欺防止の目的で、一定量の不正なログイン試行の後、訪問者をブロックしたいと考えています。この時点で、ログインするための実際の関数呼び出しをラップするマネージャー クラスがあります。訪問者がブロックされ、実際のログイン メソッドが呼び出されない場合、マネージャーは例外をスローします。ここまでは順調ですね。
Thread.Sleep
例外をスローする部分を一種のものに変更したいと思います。ただし、サーバーへの他のリクエストがブロックされるため、これはオプションではありません。おそらくいくつかの待機コマンドを使用するか、おそらく使用するこのシナリオの簡単な代替手段はありますか?async
F#
現在のコード:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
throw new BlockedException();
else
action();
}
}
優先コード:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
//Wait for xxx minutes
action();
}
}