| 網(wǎng)站首頁 | 關(guān)于我們 | 開發(fā)優(yōu)勢 | 產(chǎn)品展示 |
| 合作企業(yè) | 新聞動態(tài) | 聯(lián)系我們 | 電話聯(lián)系 |
文章作者:濟南軟件開發(fā) 時間:2016年11月08日
多線程這個概念大家都很熟悉,對于winform的開發(fā)人員來說.用的還是多的.但估計都是用Timer,或者backgroundWorker.
你是否曾經(jīng)想過,寫一個基類,然后....一用到多線程的時候,就馬上能用上呢.
沒錯,福利來了,這面我為大家寫了多線程的一個基類.只有你用到多線程,下面的代碼肯定能幫到你很多忙
1.從構(gòu)造函數(shù)來看,處理的是一個確定的列表.沒錯.這個多線程只能處理已經(jīng)確定的列表,你是否會問.可不可以一邊添加,一邊處理呢?(呵呵,可以,請聯(lián)系樓主,當(dāng)然你也可以自己寫,是吧?!)
public QueueThreadBase(IEnumerable<T> collection)
2.提供撤銷的功能
/// <summary>
/// 取消=True
/// </summary>
public bool Cancel { get; set; }
3.提供線程個數(shù)修改功能
/// <summary>
/// 線程數(shù)
/// </summary>
public int ThreadCount
{
get { return this.m_ThreadCount; }
set { this.m_ThreadCount = value; }
4.提供多種事件響應(yīng),如單個完成,全部完成的事件
/// <summary>
/// 全部完成事件
/// </summary>
public event Action<CompetedEventArgs> AllCompleted;
/// <summary>
/// 單個完成事件
/// </summary>
public event Action<T, CompetedEventArgs> OneCompleted;
5.提供完成的百分率
/// <summary>
/// 完成事件數(shù)據(jù)
/// </summary>
public class CompetedEventArgs : EventArgs
{
public CompetedEventArgs()
{
}
/// <summary>
/// 完成百分率
/// </summary>
public int CompetedPrecent { get; set; }
/// <summary>
/// 異常信息
/// </summary>
public Exception InnerException { get; set; }
}
6.提供終止線程的方式,繼續(xù)/單線程終止/全部終止
/// <summary>
/// dowork結(jié)果枚舉
/// </summary>
public enum DoWorkResult
{
/// <summary>
/// 繼續(xù)運行,默認(rèn)
/// </summary>
ContinueThread = 0,
/// <summary>
/// 終止當(dāng)前線程
/// </summary>
AbortCurrentThread = 1,
/// <summary>
/// 終止全部線程
/// </summary>
AbortAllThread = 2
}
想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。