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));
            }
        }
    }

  • 相关阅读:
    tomcat与resin的比较
    Linux Resin 安装配置
    [BZOJ3456]城市规划
    ZJOI 2017 仙人掌
    「LibreOJ NOI Round #1」动态几何问题
    [SDOI2015]约数个数和
    codeforce 940F
    codeforce 940F
    codeforce 940E
    [NOI2009]植物大战僵尸
  • 原文地址:https://www.cnblogs.com/y112102/p/3068209.html
Copyright © 2011-2022 走看看