zoukankan      html  css  js  c++  java
  • 多线程

    本文仅为笔记整理,所有内容均来自网络

    一、异步执行(让执行过程要较长等待时间的方法异步执行)

        1、异步方法:在方法调用前为异步方法指定一个回调函数,方法调用后被线程池中的一个线程接管,执行该方法。主线程立即返回,继续执行其他工作。如果异步方法执行完毕,会自动执行回调方法,处理异步方法的调用结果。实现:通过异步委托调用BeginInvokeEndInvoke方法来实现异步方法,
        2、IAsyncResult BeginInvoke(委托参数列表, AsyncCallback callback回调用函数, object o附加信息[赋值到IAsyncResult .AsyncState中])
        3、委托返回值类型 EndInvoke(IAsyncResult result) 结束后台线程
       4、 IAsyncResult :异步结果 属性:IsCompleted是否完成 AsyncWaitHandle关联的等待句柄[WaitHandle对象:waitone(超时时间,bool)]  AsyncState(用户定义的对象)
        5、AsyncCallback:public delegate void AsyncCallback(IAsyncResult ar)

    二、线程池

      1、线程池通过为应用程序提供一个由系统管理的辅助线程池,使您可以有效地使用线程。在首次创建ThreadPool类的实例时被创建。线程池具有每个可用处理器25个线程的默认限制,可以将与等待操作不相关的工作排列到线程池。

     2、ThreadPool类是利用多个线程最方便且最好的方法用以处理一些需要多个线程的较短任务,调用QueueUserWorkItem 方法。bool QueueUserWorkItem(WaitCallback callBack, object state) WaitCallback:public delegate void WaitCallback(object state);

     

     

  • 相关阅读:
    范畴定义
    泛函编程(0)-什么是泛函编程
    函数式语言的特性
    理解函数式编程
    未阅归档
    monad-本质解释- a monad is a design pattern--monad与泛型相关
    打印管理系统
    函数式JS: 原来promise是这样的monad
    Promise是Monad吗?
    Scala和范畴论 -- 对Monad的一点认识
  • 原文地址:https://www.cnblogs.com/zzfy/p/7345057.html
Copyright © 2011-2022 走看看