Create A 'thread' To Execute A Function On Page Load / Application Start?
Jan 10, 2011
I need to call a function everytime a visitor visits one of my website's page. But I do not want the execution of the function to interfere with the interface between the user and the website i.e. different thread. What is the best way to do that on ASP.Net?
I have an application that initially display 4 grid views at page load. This process takes 50-60 seconds and I would like to change the process to display the web page, show message like "Data being loaded, please wait..." and then spin off a thread that fills the various grid view. When this is done I would programatically like to do a post back to show the result. Not sure if this is possible? I tried something like this:
I have created javascript function as mentioned below to hide/show some control. I am calling this script on dropdown on 'onchange' method. In dropdown first item is "-- Select --". I want to execute it on Page Load function, so by default it will be hidden. I tried to call like this on Page load, but it is not working.
I want to start a new thread to query a database while my web application continues running. I was under the impression that by using threads I can run the querying process independently while the normal web application page cycle carries on, but I could be wrong.
public class DbAsyncQuery { Dictionary<string, object> serviceResults = new Dictionary<string, object>(); public void UpdateBillingDB() { QueryAllServices(); foreach (KeyValuePair<string, object> p in serviceResults) { IEnumerable results = (IEnumerable)p.Value; IEnumerable<object> sessions = results.Cast<object>(); DbUtil.MakeBillingDBEntry(sessions, p.Key); } } public static string[] servicesToQuery = new string[] // Must go in config file ultimately { "xxx.x.xxx.xx" }; public delegate void Worker(); private Thread worker; public void InitializeThread(Worker wrk) { worker = new Thread(new ThreadStart(wrk)); worker.Start(); } public void InitializeQuery() { Worker worker = QueryAllServices; InitializeThread(worker); } private void QueryAllServices() { Dictionary<string, DateTime> lastEntries = DbUtil.GetLastEntries(); foreach (string ip in servicesToQuery) { string fullServicePath = "http://" + ip + ":800/MyWebService.asmx"; //object[] lastEntry = new object[] { lastEntries[ip] }; object[] lastEntry = new object[] { new DateTime(2011, 1, 1, 0, 0, 0) }; object obj = WebServiceHandler.CallWebService (fullServicePath, "MyWebService", "GetBillingDBEntries", lastEntry); serviceResults.Add(ip, obj); } } }
It seems to basically stall and wait to finish the query before loading the page (which can be thousands of rows, so it takes awhile). I put this in the following section of Global.asax:
This is one of my first web pages, and I'm new to threading. I understand there is a difference between creating your own thread and using the ThreadPool. In this method, I am using my own thread, I think. Not sure if that's the best way. The querying process can be completely independent, and its only going to occur on scheduled intervals (every 8 hours or so). The user doesn't need to have up to the minute data, so it can take awhile. I just don't want the site to wait for it to finish, if that's possible.
I maintain a ASP.NET web application that causes a user's network connection to reset for several seconds when it executes a procedure. Therefore, the page request times out on the user's end as they never receive the web application's response (the connection dies before it gets the response packet).
To resolve this situation, I was contemplating having the ASP.NET page execute an asynchronous function that incorporates a Thread.Sleep(5000); // sleep for 5 seconds before executing the connection reset This way, the browser has 5 seconds to receive the page's response before their connection resets.
I have concerns with using Thread.Sleep and asynchronous functions in ASP.NET though. I've never attempted to do it before, so I'm unsure of the potential problems it may cause. Does anyone see potential problems with starting an asynchronous thread that contains a Thread.Sleep in an ASP.NET application?
I want to load data to my application domain using a thread so it will be executed at all times. How can I achieve this? I want the thread will start when iis starts and terminate when iis exits.
Note:
I want to do this so I can use disconnected architecture in my asp.net application.
I have a page that calculates some stuff and then displays it to the user. Because the calculation part takes a while I would prefer to have the entire page load with empty data and only after that call the calculation and the display data function.
does it working with it and which is the good start for TAPI.i want to create an application which automatically answer/record incoming call and also call to someone recorded message.
want this in .net (asp.net or c# desktop no problem).
I have some code I only want to execute the first time I display a form. With this in mind I created a class variable which I initialize the first time I execute page load.
public partial class CLVideoDefinition : System.Web.UI.Page { string videofile; string first; protected void Page_Load(object sender, EventArgs e) { if (first != "N") {
I then select a value from a drop down list , but when it does the auto postback it executes page load but my class varaible has been reinitialized to null and will then execute the code I only want to execute on the first run. why my class variable has been reinitialized.
i have the code for asynchronous call to the database. i execute the sql command into the begin method that will executed onto the separate thread. now i want to execute the another database call asynchronously so that this also execute onto the separate thread. code for one database cal is here....
I am trying to create a progress bar for page load as it takes long to load. I need help to resolve jscript error 'null' is null or not an object on line $get("btn").click();
I am trying to register the route collection in .net based on each session. The code I have works fine, you goto website/username and it loads the correct sub pages, but you have to restart the application to goto website/username2 to load those sub pages. But when the application is restarted the second one works, but then not the first one. Is there some way to create a different route collection per session not per application using system.web.routing.
I am using asp.net 2005, and my deployement server is Windows Server 2003.
I am invoking a .bat (which executes some cmd) file from my asp.net page.
But the cmd prompt not getting invoked . the application is waiting for long time in Process.Start() and after some time i am getting asp.net time out error.
Note : a. Same application is working in another production server with windows 2003
b. i have checked with giving impersonation = true - It doesnt worked
c. I have checked with gsetting identity as 'Local System' , 'Local Server'in th eApplication pool of the IIS.
I want to remove checked items from checklistbox (winform control) in class file method which i am calling asynchronously using deletegate. but it showing me this error message:-
Cross-thread operation not valid: Control 'checkedListBox1' accessed from a thread other than the thread it was created on.
i have tried invoke required but again got the same error. Sample code is below:
i'm about to go through my entire site now wrapping that function around every little text variable one by one and it's going to be a huge pain in the butt
i'm hoping there's a way that i could just set my masterpage to automatically run all text through this thing on any page_load, so that the effect would be site-wide instantly. is this possible?
On a page with some user controls, I need to execute some lines of code only once (i.e. not on postback), however, the code must run after ALL page objects complete loading.
Example, Page1.aspx also contains uc1.ascx and uc2.ascx. If I imbed the code in a if (!PostBack) code block, it will end up running before the corresponding page load is completed for uc1 and uc2.
Is there a way to run the code on Page1.aspx once AFTER all the objects on the page have run thru their page load events?
I want to run the LoadArray() function initialy when the page loads. This function is calling a pagemethod given in aspx.vb code file..
Partial Class test3 Inherits System.Web.UI.Page <System.Web.Services.WebMethod()> Public Shared Function Load_Array() As String() Dim Model_Name_old As String()() Dim mod_code As String() Dim mod_name As String() Dim cod_upper As Integer //calling webservice that retunrs a jagged array Dim ins As New localhost_insert_model.dbModel Model_Name_old = ins.get_Model_Name("A") mod_code = Model_Name_old(0) mod_name = Model_Name_old(1) Return mod_name End Function End Class
So how can i load the javascrip LoadArray() function onPageLoad in this scenario?
I created a search page with a lot of different functions. The page takes about 6 seconds to load so I'd like to work on making it faster. I first want to see what functions are taking the most time. I originally tried adding Response.Write(Date.Now()) throughout the code but didn't yield accurate results. I'm guessing it that's because .NET doesn't compile things linearly?
Why is there no default 'create/open' access to 'WebSites' from the VS2010 start page?
Background:I've succesfully been developing ASP.NET web applications (via WebSite method ((((Not WebProjects)))), using VisualWebDeveloper) for roughly 3 years. Personally, I prefer the WebSite method or strategy due to the decrease in both size and complexity (the web applications I build are generally for around 50-100 simultaneous users logging in and out and constantly manipulating data). I will continue bulding my sites via the 'Website' method provided VS2010 doesn't begin it's deprecation.The root of this question (which boiled into this post) came from perusing this article and this video tutorial. It's a shame to see functionality that brings with it an overall ease of use and increase in production capacity by decreasing both size and complexity of web application development... downplayed.
If the Visual Studio 2010 Development Team left this functionality out for a reason, I would very much like to know. So that I know what is going to be "sponsored by Microsoft" in a couple of years and I don't waste another second considering using the 'WebSite method' as a viable solution (as I know that I can't stick with vs2008 while rest the development community gets to evolve with the innovations implemented within vs2010)... WebSite method or the WebProjects method.
In my website, I want to create a seperate thread for a process which needs to constantly run in background. I want to use threading so that my website performance is not degraded.
I want to create thread for following code.
[WebMethod] public void iterativeFunction() { int count = 0; DateTime date1 = new DateTime(2011,5,31); while (System.DateTime.Compare(System.DateTime.Now,date1)<0) { downloadAndParse(); count++; } }