Так обычно работают однопоточные приложения.
Из вашего кода я предполагаю, что вы используете ASP.NET Web Forms.
Вам может понадобиться отключить операцию InsertToDatabase (), чтобы освободить программу для загрузки файла. Возможно, в зависимости от вашей версии рассмотрите UpdatePanels как быстрый и грязный способ достичь этого?
Вы предлагаете, чтобы эти операции были отдельными, предоставьте больше подробностей, чтобы помочь выяснить, что делает каждая задача и возможен ли JavaScript.
Но ваш пример кода указывает, что InsertToDatabase () должна быть запущена до сохранения файла.
Если вы не уверены в AJAX / JavaScript, вы можете использовать пул потоков для использования метода InsertToDatabase (). Однако все зависит от того, что делает этот метод. Пожалуйста, предоставьте больше кода / деталей. Я лично использую это для вставки базы данных, которая происходит в фоновом режиме (Фильтр действий журналирования в ASP.NET MVC, поэтому другие пользователи могут не согласиться с правомерностью этого использования. Однако это может спасти вас от изучения другого языка.
ThreadPool.QueueUserWorkItem(delegate
{
// Code here
}
);