首页 > 代码库 > C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制

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开发环境中利用异步模式来对一个方法的执行时间进行超时控制