asp.net中的异步操作

 /// <summary>
        /// 定义委托
        /// </summary>
        /// <param name="user">用户</param>
        delegate void MakeStaticDelegate(string user);

        /// <summary>
        /// 这里是测试静态方法
        /// </summary>
        /// <param name="user">用户</param>
        private static void MakeStaticTest(string user)
        {
            for (int i = 0; i < 10; i++)
            {
                // 输出当前的变量
                System.Console.WriteLine(user + ":" + i.ToString());
                System.Threading.Thread.Sleep(1000);
            }
        }

        /// <summary>
        /// 这里是模拟多用户同时点击并发
        /// </summary>
        public void DoTest()
        {

    //这里异步操作完成后调用的函数(AsyncCallback是个委托)
            AsyncCallback asyn = new AsyncCallback(Success);
            // 模拟3个用户的并发操作
            MakeStaticDelegate makeStaticDelegate1 = new MakeStaticDelegate(MakeStaticTest);
            makeStaticDelegate1.BeginInvoke("user1", asyn,"ss");
            MakeStaticDelegate makeStaticDelegate2 = new MakeStaticDelegate(MakeStaticTest);
            makeStaticDelegate2.BeginInvoke("user2", asyn, "ss");
            MakeStaticDelegate makeStaticDelegate3 = new MakeStaticDelegate(MakeStaticTest);
            makeStaticDelegate3.BeginInvoke("user3", asyn,"ss");
            System.Console.ReadLine();
        }

        public void Success(IAsyncResult ar)
        {
            string ss=ar.AsyncState.ToString();//这获得的ss就是 makeStaticDelegate1.BeginInvoke("user1", asyn,"ss");此方法的最后一个参数“ss”如果数对象要强转
            Console.Write("调用成功!");
        }

原文地址:https://www.cnblogs.com/Minghao_HU/p/2554545.html