这实际上取决于你将要做什么,但一般来说,你可能会担心的是:
我建议您实施一个作业方案,在那里您可以在某处安排作业并从该列表中实际读取其他组件(例如数据库)并执行该作业,然后将其标记为完成。这样它会在应用程序卸载过程中持续存在,没有内存重用,您可以限制性能。您可以在应用程序内部实现处理组件,如果愿意,甚至可以在Windows服务中实现。
不,你永远不应该使用它。我可以写出很多理由,但你应该阅读Scott Hansleman这篇天才恕我直言的这篇文章
http://www.hanselman.com/blog/ChecklistWhatNOTToDoInASPNET.aspx
在“可靠性和性能”下:
Fire-and-Forget Work - 避免使用ThreadPool.QueueUserWorkItem,因为您的应用程序池可能随时消失。如果必须,可以将此工作移到外面或使用WebBackgrounder。
因此,按照建议,不要使用ThreadPool.QueueUserWorkItem。一个很好的替代方案是:
https://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet-and-what-to-do-instead#fire
编辑:正如@ Scott-Chamberlain所提到的,这是一个更好的链接: http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx