我正在开发一个组件以在ASP.NET中创建定制的BulkImport功能。下划线这个组件将使用SqlBulkCopy类。将会有不同的文件格式。该文件被导入到中间表中,然后转换为所需的表格。上传文件可能很大,可能需要几分钟时间才能处理。我想使用线程或Thead池进行异步处理。你能否建议一个好的方法来处理这个问题。什么是在ASP.NET中使用Thread或Thead池的好方法
注意:这是一个内部应用程序,可以在任何给定时间由最多2-5人使用。
我正在开发一个组件以在ASP.NET中创建定制的BulkImport功能。下划线这个组件将使用SqlBulkCopy类。将会有不同的文件格式。该文件被导入到中间表中,然后转换为所需的表格。上传文件可能很大,可能需要几分钟时间才能处理。我想使用线程或Thead池进行异步处理。你能否建议一个好的方法来处理这个问题。什么是在ASP.NET中使用Thread或Thead池的好方法
注意:这是一个内部应用程序,可以在任何给定时间由最多2-5人使用。
在ASP.NET发射了额外的线程的主要问题是,该框架可以从下您翻录的AppDomain出来(例如,如果有人编辑web.config文件或IIS决定回收工作进程)。如果发生这种情况,您的工作线程也会被终止,您无法真正控制它。
如果你不认为这会成为一个问题,那么它其实并不重要,但我认为,一个更好的解决方案很可能会火起来的工作在一个单独的进程,然后可以监视从您的Web应用程序。
这样,如果有人编辑了web配置,或者IIS回收了辅助进程,导入过程就会独立运行,您不必担心。
这里是我的方法:
1产卵从ASP .NET线程是无意义的,因为父线程可以被杀死任何第二。 – 2010-04-09 11:50:33
感谢您的指导。 Feed上传将在事务处理下运行,因此如果该流程回收,Feed应该回滚。 – 2010-04-13 09:37:11