例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace ConsoleApplication6 { class Program { private delegate int AsycTaskDelegate(int i, int j); static void Main(string[] args) { AsycTaskDelegate std = AsycTask; IAsyncResult sr = std.BeginInvoke(1, 1000, null, null); //设置等待时间2秒钟,如果在3秒钟内完成任务,则执行下面的方法 if (sr.AsyncWaitHandle.WaitOne(2000)) { Console.WriteLine("收到信号"); } else { Console.WriteLine("信号丢失"); } Console.WriteLine(std.EndInvoke(sr)); Console.ReadKey(); } private static int AsycTask(int i, int j) { Console.WriteLine("请等待..."); Thread.Sleep(j); return ++i; } } }
转载于:https://blog.51cto.com/962410314/1613513