C# Winforms-在另一个线程中调用方法

C# Winforms-在另一个线程中调用方法,c#,winforms,c#-4.0,C#,Winforms,C# 4.0,从winform按钮调用不同线程中的方法以避免ui冻结或产生延迟的最佳实践是什么?第一步从 如果这不符合您的要求,或者您需要更高级的东西,您应该考虑以下其中之一: 您应该调用控件。调用或开始调用,请参阅深入参考。您可以这样做 Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { //DO SOMETHING } 看看,它是专门为这

从winform按钮调用不同线程中的方法以避免ui冻结或产生延迟的最佳实践是什么?

第一步从

如果这不符合您的要求,或者您需要更高级的东西,您应该考虑以下其中之一:


您应该调用
控件。调用
开始调用
,请参阅深入参考。

您可以这样做

 Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
 {         
      //DO SOMETHING         
 }

看看,它是专门为这个目的而创建的…@Soner:谢谢,但我不同意。有一些特定于WinForms ui控件的线程解决方案。我觉得你的标题太笼统了。(例如BeginInvoke)。重新编辑。这是你描述的相反的方式。听起来像是从背景线程到UI线程的相反方式。@UweKeim:不确定你的意思。此代码可用于从非UI线程的线程调用方法。在我看来,这正是OP所问的。我很确定他的意思与你的意思相反:-)
 Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
 {         
      //DO SOMETHING         
 }