限定线程的运行时间

遇到的问题:现在需要连接一个设备,如果设备不在线的话连接语句需要执行很久,十几秒钟,开线程也没用,会阻塞主线程,所以我就想找个方法判断一下如果连接语句执行超过3秒就认为设备不在线,不等了,去干别的去(winform)


http://bbs.csdn.net/topics/190039512


最后用的方法是3L的


1.加入using System.Threading命名空间;

2.先在类中定义一个成员变量:
        Thread t;
        System.Threading.Timer time;  //线程计时器.

        private void Form_Load(object sender, EventArgs e)
        {
            t=new Thread(new ThreadStart(start));
            t.Start();
            
            try
            {
//TimerCallback是一个委托类型,第三个参数是开始计时,每四参数是间隔长(以ms为单位).
             time = new System.Threading.Timer(new TimerCallback(method), null, 0,2000);
               
            }
            catch {  }
        }

        void method(object o) //注意参数.
        {
            t.Abort(); //终止线程.
            if (!t.IsAlive)
            {//终止成功.
                //终止计时器
                time.Change(Timeout.Infinite, Timeout.Infinite);
                MessageBox.Show("method");
                
            }
        }
        void start()
        {
            MessageBox.Show("start");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值