.net3.5后新增的 BeginInvoke EndInvoke 异步操作

        protected void Main()
        {
            //首先定义一个方法的封装..后边的LongTimeMethod是被封装的方法..
            Func<int> longTimeAction = new Func<int>(LongTimeMethod);
            //定义一个异步操作.. asynResult  
            //用上边的longTimeAction封装 来开启这个异步操作..

            IAsyncResult asynResult = longTimeAction.BeginInvoke(null, null);
            //在上边的开启异步操作后..程序会另外启动一个线程来执行前边的封装方法..这个方法是委托给这个新线程的
            //得到了异步请求的结果..返回给 ret
            int ret = longTimeAction.EndInvoke(asynResult);
        }

        int LongTimeMethod()
        {
            return 1;
        }
        protected void Main ()
        {
            //首先定义一个方法的封装..后边的LongTimeMethod是被封装的方法..
            Func<int> longTimeAction = new Func<int>(LongTimeMethod);
            //定义一个异步操作.. asynResult  
            //用上边的longTimeAction封装 来开启这个异步操作..

            int ss=0;
            IAsyncResult asynResult = longTimeAction.BeginInvoke((result) => { ss = longTimeAction.EndInvoke(result); }, null);
            //在上边的开启异步操作后..程序会另外启动一个线程来执行前边的封装方法..这个方法是委托给这个新线程的
            //得到了异步请求的结果..返回给 ss
        }

        int LongTimeMethod()
        {
            return 1;
        }
原文地址:https://www.cnblogs.com/iiwen/p/4835611.html