我在一个button_start里面开始执行backgroundworker(RunWorkerAsync();)或者一个thread(Start()),在另一个button_stop里面终止(CancelAsync())或者用线程Abort();
不管用backgroundworker或者thread,按钮都要按过2秒才感觉点上,还是还觉会顿一下,怎么避免这个问题?能让来回切换很快?
不管用backgroundworker或者thread,按钮都要按过2秒才感觉点上,还是还觉会顿一下,怎么避免这个问题?能让来回切换很快?
private void btn_Start_Click(object sender, EventArgs e)
{
this.btn_Start.Enabled = false;
this.btn_Stop.Enabled = true; entryPoint = new ThreadStart(ThStartCounter);
th = new Thread(new ThreadStart(entryPoint));
th.Start();
}private void ThStartCounter()
{
while (true)
{
//开始计数
CounterSetting.OperationFuncRead2((ushort)m_dev, (ushort)0, out ReadValue); //这里第一次加入的数据是没有变化的初始数据,外面程序要减掉
if (uOldReadValue != ReadValue)
{
uOldReadValue = ReadValue; AL.Add(ReadValue);
} //延时必须加,否则读取的变化数据不正确
System.Threading.Thread.Sleep(0);
}
}private void btn_Stop_Click(object sender, EventArgs e)
{
th.Abort();
}
大体程序就是这个样子,为什么会卡一下呢?