XML|HTML|TXT
您当前位置: 软件开发>> 新利在线娱乐>> 软件开发行业资讯>> 浏览文章

c#通用多线程基类,以队列形式

  多线程这个概念大家都很熟悉,对于winform的开发人员来说.用的还是多的.但估计都是用Timer,或者backgroundWorker.

  你是否曾经想过,写一个基类,然后....一用到多线程的时候,就马上能用上呢.

  没错,福利来了,这面我为大家写了多线程的一个基类.只有你用到多线程,下面的代码肯定能帮到你很多忙

1.从构造函数来看,处理的是一个确定的列表.没错.这个多线程只能处理已经确定的列表,你是否会问.可不可以一边添加,一边处理呢?(呵呵,可以,请联系楼主,当然你也可以自己写,是吧?!)

  public QueueThreadBase(IEnumerable collection)

2.提供撤销的功能

      ///

  /// 取消=True

  ///

  public bool Cancel { get; set; }

3.提供线程个数修改功能

  ///

  /// 线程数

  ///

  public int ThreadCount

  {

  get { return this.m_ThreadCount; }

  set { this.m_ThreadCount = value; }

4.提供多种事件响应,如单个完成,全部完成的事件

  ///

  /// 全部完成事件

  ///

  public event Action AllCompleted;

  ///

  /// 单个完成事件

  ///

  public event Action OneCompleted;

5.提供完成的百分率

  ///

  /// 完成事件数据

  ///

  public class CompetedEventArgs : EventArgs

  {

  public CompetedEventArgs()

  {

  }

  ///

  /// 完成百分率

  ///

  public int CompetedPrecent { get; set; }

  ///

  /// 异常信息

  ///

  public Exception InnerException { get; set; }

  }

6.提供终止线程的方式,继续/单线程终止/全部终止

  ///

  /// dowork结果枚举

  ///

  public enum DoWorkResult

  {

  ///

  /// 继续运行,默认

  ///

  ContinueThread = 0,

  ///

  /// 终止当前线程

  ///

  AbortCurrentThread = 1,

  ///

  /// 终止全部线程

  ///

  AbortAllThread = 2

  }


手机:18678812288 E-Mail:1069706080@qq.com
地址:山东省济南市舜耕路泉城公园东门园内向北50米 鲁ICP备07011972号 版权所有2008-2013 新利体育18
Baidu