具体的工作不要放到按钮事件里执行,用一个后台线程来做,我做了个简单的示例测试可以达到你的要求,供你参考:
// 一个后台线程,用来执行你的数据采集工作
Thread m_BackThread = null;
// 开始按钮
private void roundButton1_Click(object sender, EventArgs e)
{
if( m_BackThread == null ) // 防止重复执行Work
{
m_BackThread = new Thread( new ThreadStart( m_BackThread_DoWork ) );
m_BackThread.IsBackground = true;
腔枣 伍宏拆 m_BackThread.Start();
}
}
void m_BackThread_DoWork()
{
// write your work code here
//...
while( true )
{
// 打印一句话,来监视后台工作是否仍在进行
绝竖 Console.WriteLine( "Still running" + DateTime.Now.ToString() );
}
}
// 停止按钮,如果控制台
private void roundButton2_Click(object sender, EventArgs e)
{
if( m_BackThread != null )
{
m_BackThread.Abort();
m_BackThread = null;
}
}