Windows フォーム ウィンドウでは、複数のイベントが非同期メソッドをトリガーできます。このメソッドは、ファイルをダウンロードしてキャッシュします。私の問題は、そのメソッドを一度実行したいということです。つまり、ファイルが複数回ダウンロードされるのを防ぎたいのです。
ファイルをダウンロードするメソッドが 2 回トリガーされた場合、2 回目の呼び出しでファイルを待機する (または最初のメソッドが実行されるのを待機する) 必要があります。
誰かがそれを達成する方法について考えを持っていますか?
更新:不要なダウンロードを防止しようとしているだけです。私の場合、クライアントが数ミリ秒以上 ListBox 内のアイテムの上にマウスを置くと、ダウンロードが開始されます。ユーザーがクリックしてファイルを要求すると想定しています。ユーザーがアイテムの上にマウスを 1 秒間置いてからクリックすると、発生する可能性があります。この場合、2 つのダウンロードが開始されます。そのようなシナリオを処理するための最良の方法を探しています。
更新 2: : ユーザーがマウスを複数の項目の上に移動する可能性があります。その結果、複数のダウンロードが発生します。私はこのシナリオにそれほど苦労していませんが、現時点では、そのようなシナリオに直面した場合でも、ダウンロードを放棄することはありません. ファイルがダウンロードされ (通常、ファイルは約 50 ~ 100kb です)、キャッシュされます。