C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制
Posted Welcome to the Blog of Acamy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制相关的知识,希望对你有一定的参考价值。
using System.Threading; using System; namespace ConsoleApplication4 { public class Program { static void Main(string[] args) { try { String str = "excuting"; myDel del = new myDel(Method); CallWithTimeout(del,1200,str); Console.WriteLine("success"); } catch (Exception) { Console.WriteLine("fail"); } } static void Method(String str) { Console.WriteLine(str); Thread.Sleep(1000); } public delegate void myDel(string str); static void CallWithTimeout(myDel del,int timeoutMilliseconds,String str) { ThreadStart threadStart = new ThreadStart(delegate() { if (null != del) { del(str);//委托调用 } }); Thread thread = new Thread(threadStart); IAsyncResult result = del.BeginInvoke(str, null, null); if (result.AsyncWaitHandle.WaitOne(timeoutMilliseconds)) { del.EndInvoke(result); } else { thread.Abort(); throw new TimeoutException(); } } } }
以上是关于C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制的主要内容,如果未能解决你的问题,请参考以下文章