Friday, 20 November 2015

Dealing with “Application has stopped responding” issue in C#.Net

Suppose in your application, on a click event you are doing some calculations which is taking a lot of time. During that time, if a user perform unnecessarily clicks on the screen, it might give a “Page is not responding” or "Application has stopped responding" error.

This can be resolved by following the below steps:

1.   Put your long running code in a thread.

2. Set “Cursor.Current = Cursors.WaitCursor;”

3. UseWaitCursor = true;

4. Inside the thread use the try-finally block.

5. In the finally block, set “this.Cursor = Cursors.Default;”

6. UseWaitCursor = false;

7. Start that thread.

Example:
     Cursor.Current = Cursors.WaitCursor;
     UseWaitCursor = true;

            new Thread(() =>
            {
     try
            {                             
                // Your long running code                                   
            }
            catch (Exception ex)
            {
                 // Handle any exception here
            }
            finally
            {                           
  Cursor.Current = Cursors.Default;
                UseWaitCursor = false;
            }
           }) { Name = "longTask" }.Start();


Now even if you click 100 times, the page will not show “Not Responding” error.

No comments:

Post a Comment