background task with an asp.net web application
Is this the technique to run a background job every x minutes: http://msdn.microsoft.com/en-us/library/system.threading.threa开发者_高级运维dpool.queueuserworkitem%28VS.71%29.aspx
So would I load this in the global.asax?
I have written a couple of Blogs on background threads http://professionalaspnet.com/archive/2008/08/04/Creating-a-Background-Thread-to-Log-IP-Information.aspx http://professionalaspnet.com/archive/2009/09/21/Communication-With-a-Background-Thread-in-ASP.NET.aspx
Another method is to have a page that when accessed, does the task you intend to do. Then you setup some process (a lot of hosting providers provide such a mechanism in their control panel) that simple hits that page every X minutes and that forces the job to run.
No, Thread.QueueUserWorkItem is for queing up a single unit of work on a thread out of the thread-pool. Whilst this task is running you are taking a thread away from asp.net. The best way to execute scheduled tasks is probably through a windows service, but look into the method suggested by @Heinzi, can be suitable for site that don't have huge numbers of concurrent users.
精彩评论