当前位置:首页 > Windows程序 > 正文

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

2024-03-31 Windows程序

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(); } } } }

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/56808.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494633访问次数
  • 建站天数
  • 友情链接