如何让Task在非线程池线程中执行?
原文中文,约5600字,阅读约需14分钟。发表于: 。Task承载的操作需要被调度才能被执行,由于.NET默认采用基于线程池的调度器,所以Task默认在线程池线程中执行。但是有的操作并不适合使用线程池,比如我们在一个ASP.NET Core应用中承载了一些需要长时间执行的后台操作,由于线程池被用来处理HTTP请求,如果这些后台操作也使用线程池来调度,就会造成相互影响。在这种情况下,使用独立的一个或者多个线程来执行这些后台操作可能是一个更好的选择。一、...
本文介绍了使用Task时可能会出现线程池被占用的问题,提出了解决方案,包括使用TaskCreationOptions.LongRunning选项、异步操作、自定义TaskScheduler或独立线程池等方式。其中,自定义TaskScheduler可以创建一个独立的线程池,避免了线程池被占用的问题。