我有一个实例,在这里我想能够从后台线程来处理事件。具体来说,要能够处理由外部硬件产生的事件(通过串行端口的TCP / IP连接等),通过其数据的BackgroundWorker。
void Worker_DoWork(object sender, DoWorkEventArgs e)
{
simpleButton3.Click += new EventHandler(simpleButton3_Click);
while (!Worker.CancellationPending)
{
// Wait for event to be triggered
}
simpleButton3.Click -= new EventHandler(simpleButton3_Click);
}
void simpleButton3_Click(object sender, EventArgs e)
{
// Do something...
Thread.Sleep(5000);
// Do something else...
}
然而,我在这个例子中发现,睡眠命令将主线程(GUI),BackgroundWorker的,而不是睡觉。
这是一个BackgroundWorker线程处理事件的可能吗?
谢谢!