zoukankan      html  css  js  c++  java
  • c# 异步线程

    using System;
    using System.Collections.Generic;
    using System.Runtime.Remoting.Messaging;
    using System.Threading;
    
    namespace asyncResult
    {
        delegate long myDel(int first,int second);
    
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Main begin");
                IAsyncResult iar =  new myDel(Sum).BeginInvoke(3, 5, CallBackAsyn, null);
                Console.WriteLine("Doing more work in Main");
                Thread.Sleep(500);
                Console.WriteLine("Done with Main Exiting");
    
            }
    
            static long Sum(int first, int second)
            {
                Console.WriteLine("delete method Begin");
                Thread.Sleep(100);
                return first + second;
            }
    
            //怎么确保回调函数是由哪个异步线程发起的? 
            //这就是为什么需要用IAsyncResult接口的原因,IAsyncResult接口对象在AsyncResult 类对象内部,AsyncResult包含委托对象引用
            static void CallBackAsyn(IAsyncResult iar)
            {
                Console.WriteLine("CallBackFn asyncResult Begin");
                AsyncResult ar = (AsyncResult)iar;
                myDel del = (myDel)ar.AsyncDelegate;
                Console.WriteLine("CallBackFn asyncResult result is:{0}",del.EndInvoke(iar));
            }
        }
    }

  • 相关阅读:
    08月24日总结
    08月23日总结
    08月22日总结
    装饰器
    卢菲菲最强大脑记忆训练法全套教程 01
    LeetCode 704 二分查找
    LeetCode 1480 一维数组的动态和
    NIO 总结
    LeetCode 881 救生艇
    url的组成部分
  • 原文地址:https://www.cnblogs.com/y112102/p/3068209.html
Copyright © 2011-2022 走看看