В окне Windows Form несколько событий могут вызывать асинхронный метод. Этот метод загружает файл и кэширует его. Моя проблема в том, что я хочу, чтобы этот метод был выполнен один раз. Другими словами, я хочу предотвратить загрузку файла несколько раз.
Если метод загрузки файла запускается дважды, я хочу, чтобы второй вызов дождался файла (или дождался выполнения первого метода).
У кого-нибудь есть идеи, как этого добиться?
ОБНОВЛЕНИЕ : Я просто пытаюсь предотвратить ненужные загрузки. В моем случае, когда клиент наводит указатель мыши на элемент в ListBox более чем на пару миллисекунд, мы начинаем загрузку. Мы предполагаем, что пользователь щелкнет и запросит файл. Что может произойти, так это то, что пользователь удерживает курсор мыши над элементом в течение одной секунды, а затем щелкает. В этом случае начинаются две загрузки. Я ищу лучший способ справиться с таким сценарием.
ОБНОВЛЕНИЕ 2: : Существует вероятность того, что пользователь наведет указатель мыши на несколько элементов. В результате произойдет многократная загрузка. Мне не очень сложно с этим сценарием, но сейчас, если мы столкнемся с таким сценарием, мы не откажемся от загрузки. Файл будет загружен (файлы обычно имеют размер около 50-100 КБ) и затем будет кэширован.