活动"按钮单击"不工作C#

时间:2015-06-03 10:01:14

标签: c# forms

我正在尝试制作带有两个按钮Start和Stop的程序。这是代码:

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永远不会设置为零。 为什么会出现此问题?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尝试在后台线程上运行无限时,或者使用1ms的thread.sleep实现它。 问题可能是您阻止了无法处理按钮2上的第二次单击的UI线程