There are a few things to do.
Firstly, each ASP.NET application (MVC or otherwise) is inherently multi-threaded: each request is processed in a separate thread, so you automatically turn on the multi-threaded situation and should take this into account using any shared data access (e.g., statics, etc.) d.).
Another is that with MVC it is especially easy to write asynchronous controller methods, for example:
public async Task<ActionResult> Index(int id)
{
var model = await SomeMethodThatGetsModelAsync(id);
return View(model);
}
, , ? ( ) . , SomeMethodThatGetsModel(id) , await ing SomeMethodThatGetsModelAsync(id) . , -, - , . , .
, , - , , .
, , (, -), , .
( , , , , ThreadPool.QueueUserWorkItem Task.Run. ASP.NET, , . , , , , ).