• c# 委托之异步调用delegate Beacher


    在很多情况下,我们会遇到这种情况,比如做一些日志性质的操作记录,或者数据大批量插入数据库或者其他操作,这个时候用户本身不能等在这里,等执行完之后之后在操作其他的,而是需求异步进行这些操作,所以用到一些异步操作的方法,但是都是根据当时的环境而定用那个形式webservice,thread,委托....等等,

    本文中使用的为委托--异步操作, 我们直接上列子,一个往数据库操作的列子 

    public delegate int DInsertTable(UserModel user)

    static void Main(string[] args)

    {

      UserModel user=new UserModel('llll',23,'164949494')

      //指定委托函数

      DInsertTable d=new DInsertTable(InsertTable);

      //异步操作 user参数 第二个为回调函数,当委托执行完成之后会调用这个回调函数,可以在里边写自己相对应的代码

      d.BeginInvoke(user,new AsyncCallback(GoBack),null);

    }

    //执行方法

    static bool InsertTable(UserModel user)

    {

      //自己的数据操作代码

      return true

    }

    static void GoBack(IAsyncResult isa)

    {

        AsyncResult a = (AsyncResult)isa;
                Ad ad=(Ad)a.AsyncDelegate;
                Console.WriteLine("执行完成,返回结果是"+ad.EndInvoke(isa));

    }

  • 相关阅读:
    setsid
    dup
    信号量
    linux标准输入输出
    linux守护进程范例
    c++字符串操作
    浏览器缓存
    bfc
    苹果手机自制铃声
    vue-cli 源码解读
  • 原文地址:https://www.cnblogs.com/beacher/p/2369912.html
Copyright © 2020-2023  润新知