原创 转:C# 进程关闭弹对话框解决办法

2012-3-11 21:57 2629 3 3 分类: 软件与OS

用一个线程不断地从串口中抓取数据,并且将抓取到的数据invoke 到 textbox中,退出系统时调用 if(thread.isAlive) thread.Abort(); 也弹出了“正在终止线程” 对话框, 尝试了多次,对线程进行了稍微的改动.采用了下面的办法:
1.定义一个读取标志:
        private bool readCardSign = true;
        public bool ReadCardSign
        {
            get { return readCardSign; }
            set { readCardSign = value; }
        }
2.抓取数据线程:
        private void ReadCardFun()
        {
            while (true)
            {
                if (ReadCardSign)      //获取读取标志
                {
                    //获取串口中的数据
                    //获取成功则将数据 invoke 到 textbox中
                    Thread.Sleep(300);
                }
                else
                {
                    break;            //如果读取标志为 false 则中断线程
                }
            }
        }
3. 退出系统时调用:
                if (tdReadCard.IsAlive)
                {
                    ReadCardSign = false;
                }
                this.Close();
 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /3 下一条