В настоящее время я использую ThreadPool.QueueUserWorkItem в приложении Asp.Net.
Обычно пользователь загружает файл, используя форму с элементом управления FileUpload.
Обработка файла может занять довольно много времени, что привело к истечению времени ожидания пользователя, а также к невозможности использования пользовательского интерфейса во время обработки загрузки.
Поэтому я подумал, что просто вызову свой метод импорта следующим образом:
ThreadPool.QueueUserWorkItem(this.NameOfMyImportMethod);
Данные, с которыми должен работать метод импорта, были заданы как переменные класса при создании класса Import (я не делаю работу по импорту в коде!).
В большинстве случаев все работает нормально. Однако, казалось бы, случайным образом метод импорта НЕ вызывается асинхронно, браузер ждет ответа и в конечном итоге истекает время ожидания.
Я гарантирую, что перехватываю все исключения внутри метода импорта.
Я не могу воссоздать его все время, но, по-видимому, это происходит в основном, если я поиграю с формой, вызывающей несколько сообщений назад перед отправкой.
Есть идеи о том, что здесь может происходить?
Спасибо за любую помощь!