多线程这个概念大家都很熟悉,对于winform的开发人员来说.用的还是多的.但估计都是用Timer,或者backgroundWorker.
你是否曾经想过,写一个基类,然后....一用到多线程的时候,就马上能用上呢.
没错,福利来了,这面我为大家写了多线程的一个基类.只有你用到多线程,下面的代码肯定能帮到你很多忙
1.从构造函数来看,处理的是一个确定的列表.没错.这个多线程只能处理已经确定的列表,你是否会问.可不可以一边添加,一边处理呢?(呵呵,可以,请联系楼主,当然你也可以自己写,是吧?!)
public QueueThreadBase(IEnumerable
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
///
/// 单个完成事件
///
public event Action
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
}