zoukankan      html  css  js  c++  java
  • (转载)C# 异步委托的使用

    当进行耗时的工作时,可以使用异步委托执行。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.Remoting.Messaging;

    namespace ConsoleApplication2
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                facHandler f 
    = new facHandler(Fac);
                
    //开异步方法开始执行
                IAsyncResult result = f.BeginInvoke(10new AsyncCallback(callBack), "计算结束");
                Console.WriteLine(
    "做其他事情先……");
                Console.Read();
            }


            
    delegate int facHandler(int n);
            
    static int Fac(int n)
            {
                
    if (n == 1return 1;
                System.Threading.Thread.Sleep(
    100);
                
    return Fac(n - 1* n;
            }

            
    static void callBack(IAsyncResult result)
            {
                
    //result是Fac()的返回值
                
    //将AsyncDelegate强制转换为用户定义的委托。
                facHandler handler = (facHandler)((AsyncResult)result).AsyncDelegate;
                Console.WriteLine(
    "结果:" + handler.EndInvoke(result));

                Console.WriteLine(result.AsyncState);
            }

        }
    }
  • 相关阅读:
    02 日志系统: 一条SQL 更新语句是如何执行的
    MySql 实战45讲笔记 : 01
    爬取boss直聘全国招聘数据并做可视化
    爬取豆瓣电影-长津湖短评
    尝试破解压缩文件
    将webp格式的图像批量转化成jpg
    将JPG格式图片转换成PNG格式
    几个学习编程的游戏网站
    检测网址连接有效性
    监控设备电池电量并发送通知
  • 原文地址:https://www.cnblogs.com/arraylist/p/2132057.html
Copyright © 2011-2022 走看看