• 也写个异步调用 遥远的青苹果


     
     
    今天第一次用live Writer写代码,先发一个! 异步代码。
     
     
     
     
     
     
     
     
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
     
     
    namespace Asyncalback
    {
     
         
        public   delegate string deleDoing(string argsInput);
     
        class AsyncalCall
        {
     
      private static  deleDoing deleDoingObj = new deleDoing(SaySomeThingsNeedLitterOfTime); // 三部曲,定义委托,二 定义方法执行(主要是begininvoke,和endinvoke),和,三是返回结果存放位置
          private static string SomeThingsNeedLitterOfTimeResult = string.Empty; //返回结果的变量
      public static void Main()
            {
                 Console.WriteLine("开始工作。。。");
                 string inWorkinArges = "参数"; //费事的工作传入参数
     
                deleDoingObj.BeginInvoke(inWorkinArges, new AsyncCallback(TaskFinished), null); //执行
     
                doAnotherThinges();
     
                Console.ReadLine();
     
     
     
            }
     
     
     
     
            /// <summary>
            /// 模拟其它执行过程
            /// </summary>
            private static  void   doAnotherThinges()
            {
     
     
                for (int i = 0; i < 10; i++)
                {
     
                    Console.WriteLine(i);
     
                    Console.WriteLine("其它程序"+System.DateTime.Now.ToString());
                
     
                    Thread.Sleep(100);
                    Console.WriteLine("其它程序"+System.DateTime.Now.ToString());
                }
     
     
            }
     
     
     
            /// <summary>
            /// 返回的结果费时的结果 执行的情况
            /// </summary>
            /// <param name="result"></param>
            public static void TaskFinished(IAsyncResult result)
            {
                Console.WriteLine("执行结果回调一次"+System.DateTime.Now.ToString());
                 SomeThingsNeedLitterOfTimeResult = deleDoingObj.EndInvoke(result);
                 Console.WriteLine("执行结果回结束"+System.DateTime.Now.ToString());
                 Console.WriteLine("执行结果是:SomeThingsNeedLitterOfTimeResult" + SomeThingsNeedLitterOfTimeResult);
     
            }
     
         
     
     
            private static string SaySomeThingsNeedLitterOfTime(string argsInput)
            {
     
                string reture = string.Empty;
                int cout=0;
                for (int i = 0; i < 10; i++)
                {
     
                   
     
                    Console.WriteLine("执行费时程序"+System.DateTime.Now.ToString());
                    Thread.Sleep(100);
                    Console.WriteLine("执行费时程序"+System.DateTime.Now.ToString());
                    cout+=i;
     
                }
     
                reture = cout.ToString();
                return reture;
            
            
            }
        }
    }
     
    
  • 相关阅读:
    iOS 8以后 定位手动授权问题
    IOS int NSInteger NSNumber区分
    Java基础知识(JAVA集合框架之List与Set)
    Java基础知识(JAVA基本数据类型包装类)
    Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
    Java基础知识(重载和覆盖)
    Java基础知识(抽象类和接口)
    host文件
    天猫页面显示错位
    专题8:javascript函数详解
  • 原文地址:https://www.cnblogs.com/lixinhai/p/2531359.html
Copyright © 2020-2023  润新知