事件“;按钮Click"c#不工作

本文关键字:quot 工作 Click 按钮 事件 | 更新日期: 2023-09-27 17:53:16

我正在尝试用两个按钮开始和停止程序。下面是代码:

namespace rcToOnBoardPC
{    
    public partial class Form1 : Form
    { 
        Communication objCommunication = new Communication();
        DataTable A = new DataTable();
        public int a; 
       public Form1()
       {
           InitializeComponent();
       }
       private void button1_Click(object sender, EventArgs e)
       { 
           objCommunication.intialiseCAN();
           a = 1;
           A = Data.GetAccessDataTable("TestData", "testDB.accdb");
           this.dataGridView1.DataSource = A;
           objCommunication.ID0008Update10ms(A,a);// Runs Infinte While if a=1         
        }
       private void button2_Click(object sender, EventArgs e)
       {
            a = 0;
            string timeEnd = DateTime.Now.ToString();
            objCommunication.unIntialiseCAN();      
            Environment.Exit(1);    
        }
        public void textBox1Update(string message)
        {
            textBox1.Text = message;
        }
    }
}

我面临的问题是,在"button1_click"a被设置为1,如果a=1,然后方法"ID0008Update10ms"运行一个无限的时间。如果我尝试生成"button2_Click"我无法实现它,或者它根本不起作用,所以a永远不会设置为零。为什么会出现这个问题?

事件“;按钮Click"c#不工作

如果button1_Click正在运行一个无限循环,它将阻塞UI线程。

这意味着不能处理UI线程上的任何其他事件,包括button2_Click。

尝试在后台线程上运行infinite或在线程中实现它。睡眠1毫秒。问题可能是你阻塞了UI线程无法处理第二个点击按钮2