标签:ace new cond div rgs 方法 seconds line ati
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开发环境中利用异步模式来对一个方法的执行时间进行超时控制
标签:ace new cond div rgs 方法 seconds line ati
原文地址:http://www.cnblogs.com/Acamy/p/6613654.html