C#如何实现异步回调机制

2020-05-03 社会 133阅读
 class Program
    {
        public delegate int SumCallback(int x, int y);
        public int Sum(int x, int y)
        {
            Console.WriteLine("等待...");
            System.Threading.Thread.Sleep(2000);
            return x + y;
        }
        public void Callback(IAsyncResult ar)
        {
            Console.WriteLine("回调...");
            AsyncResult result = ar as AsyncResult;
            if (result!=null)
            {
                SumCallback caller = (SumCallback)result.AsyncDelegate;
                Console.WriteLine(caller.EndInvoke(result));
            }
        }
        static void Main(string[] args)
        {
            SumCallback sc = new Program().Sum;
            IAsyncResult result = sc.BeginInvoke(1, 2,new Program().Callback, sc);
            Console.WriteLine("主线程...");
            Console.ReadKey(true);
        }
    }
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com