在后台运行方法来更新UI

时间:2011-07-10 03:25:55

标签: c# wpf

如何在c#wpf的后台运行方法?这是一种数据包嗅探方法,只要收到新数据就会更新UI,我是否必须使用dispatcher.invoke?

2 个答案:

答案 0 :(得分:2)

您可以使用调度程序或BackgroundWorker:请参阅Build More Responsive Apps With The Dispatcher

答案 1 :(得分:2)

在WPF中有很多方法可以做到这一点,但是这里有一个非常简单的方法,使用Task在另一个线程上完成工作,然后将UI更新分发回主线程:

Task.Factory.StartNew(() =>
{
    // some work (packet sniffing)

    // update UI
    this.Dispatcher.BeginInvoke(new Action(() =>
    {
        // update my controls here
    }));
});