Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 80579
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T21:19:29+00:00 2026-05-10T21:19:29+00:00

I am looking for good ideas for implementing a generic way to have a

  • 0

I am looking for good ideas for implementing a generic way to have a single line (or anonymous delegate) of code execute with a timeout.

TemperamentalClass tc = new TemperamentalClass(); tc.DoSomething();  // normally runs in 30 sec.  Want to error at 1 min 

I’m looking for a solution that can elegantly be implemented in many places where my code interacts with temperamental code (that I can’t change).

In addition, I would like to have the offending ‘timed out’ code stopped from executing further if possible.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T21:19:30+00:00Added an answer on May 10, 2026 at 9:19 pm

    The really tricky part here was killing the long running task through passing the executor thread from the Action back to a place where it could be aborted. I accomplished this with the use of a wrapped delegate that passes out the thread to kill into a local variable in the method that created the lambda.

    I submit this example, for your enjoyment. The method you are really interested in is CallWithTimeout. This will cancel the long running thread by aborting it, and swallowing the ThreadAbortException:

    Usage:

    class Program {      static void Main(string[] args)     {         //try the five second method with a 6 second timeout         CallWithTimeout(FiveSecondMethod, 6000);          //try the five second method with a 4 second timeout         //this will throw a timeout exception         CallWithTimeout(FiveSecondMethod, 4000);     }      static void FiveSecondMethod()     {         Thread.Sleep(5000);     } 

    The static method doing the work:

        static void CallWithTimeout(Action action, int timeoutMilliseconds)     {         Thread threadToKill = null;         Action wrappedAction = () =>         {             threadToKill = Thread.CurrentThread;             try             {                 action();             }             catch(ThreadAbortException ex){                Thread.ResetAbort();// cancel hard aborting, lets to finish it nicely.             }         };          IAsyncResult result = wrappedAction.BeginInvoke(null, null);         if (result.AsyncWaitHandle.WaitOne(timeoutMilliseconds))         {             wrappedAction.EndInvoke(result);         }         else         {             threadToKill.Abort();             throw new TimeoutException();         }     }  } 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm looking for some good ideas for a simple 3d graphics program as my
I'm looking for good/working/simple to use PHP code for parsing raw email into parts.
I'm looking for good patterns for implementing a paged table of results in ASP.NET
I'm interested in speed, not good looking code, that is why I'm using array
I'm looking at implementing an RDBMS. Are there any good resources out there about
I'm looking for some ideas for good naming conventions for xsd target namespaces. Basically
Does anyone know of any good tools (I'm looking for IDEs) to write assembly
Looking for good project methodologies.Anyone got some good reference links..want to share.
I am looking for good methods of manipulating HTML in PHP. For example, the
I am looking for good templates for writing both technical and functional specs on

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.