C#中 一个多线程框架

本文介绍了C#中多线程操作的封装,提供了一个BaseThread基类,方便线程控制。通过继承该基类并实现Run方法,业务处理可以专注于自身工作,而线程的启动、停止和异常处理等细节由BaseThread处理。
摘要由CSDN通过智能技术生成

C#提供了丰富的多线程操作,为编程带来了极大的便利,但如果使用不当也会带来各种各样的麻烦。

这里把C#中多线的操作进行了一下简单的封装,使它对外提供的接口简洁,易于控制。


保留一下的代码片段,以备日后查用。

BaseThread基类,线程派生类可以继承这个基类,并且实现自己的Run方法。

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace BaseThread
{
    public class BaseThread
    {
        public enum ThreadStatus
        {
            CREATED,
            RUNNING,
            STOPED,
        };

        private int m_Tid;
        private bool m_IsAlive;
        private ThreadStatus m_Status;
        private Thread m_WorkingThread;

        private static void WorkFunction(object arg)
        {
            try
            {
                System.Diagnostics.Trace.WriteLine("BaseThread::WorkFunction {");
                ((BaseThread)arg).Run();
                System.Diagnostics.Trace.WriteLine("BaseThread::WorkFunction }");
            }
            catch (ThreadAbortException abt_ex)
            {
                System.Diagnostics.Trace.WriteLine("BaseThread::WorkFunction ThreadAbortException " + abt_ex.ToString());
                Thread.ResetAbort();
            }
            catch (ThreadInterruptedException int_ex)
            {
                System.Diagnostics.Trace.WriteLine("BaseThread::WorkFunction ThreadAbortException " + int_ex.ToString());
            }
            catch (Exception e
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值