Running long admin tasks
Some times I’m making some admin task that takes a long time to execute. Since I’m a bit lacy I made some generic code to help me to move the execution to a different thread and displays a progress bar, and when finished displays the result.
I know there is methods with Ajax frameworks that can resolve this, but I wanted more control on the actually thread.
I have made the code like a web control that you can embed around you existing user control like this
<Itera:DoInThread runat="server" id="test" CacheResultFor="1" ThreadFor="Session"> <uc1:test ID="test2" runat="server" /> <uc1:test ID="test1" runat="server" /> </Itera:DoInThread>
The DoInThread control will instead of adding the sub controls to it self add them to a list of controls. Then a background thread will start and execute the Page_Load method on each control. (Yes I know there are other functions that should have been executed, but I only needed Page_Load :))
The IFrame points to a Threads.aspx page and you need to add this in the web.config to see the generated content and progress.
<system.webServer> <handlers> <add name="Threads" path="Threads.aspx" verb="GET" type="Itera.Threads.HttpHandler.SubResults,Itera.Threads" /> </handlers> </system.webServer>
and to use the Itera:Threads
<pages validateRequest="false" enableEventValidation="false" > <controls> <add tagPrefix="Itera" namespace="Itera.Threads.WebControls" assembly="Itera.Threads" /> </controls> </pages>
PS: Objectware is recruiting!
look here for more information