如何在运行其他进程时阻止我的C#表单冻结?

时间:2016-06-23 18:08:39

标签: c# multithreading

我从Windows窗体启动Selenium。一旦selenium启动,表单将被冻结,直到Selenium完成,然后UI更新并再次单击。

启动驱动程序的代码:

using(var drivers = new PhantomJSDriver(@"C:\Users\Me\Documents"))

如何在PhantomJS运行时让UI响应?

1 个答案:

答案 0 :(得分:1)

  

当PhantomJS在运行时,如何让UI响应   背景

不确定您是否在单独的线程中运行它们(因为您标记了C#);如果是,那么请确保您没有等待该线程。意味着,如果您使用的是System.Threading.Thread,那么如果您使用Join(),则不会对线程实例(OR)进行Task方法调用,那么您不会调用WaitAll() }或WaitAny()。因为,如果它存在意味着您的UI线程实际上正在等待bg线程完成,然后才能启动它自己的处理,这是您不想做的事情。

根据您的评论:在这种情况下,您可以选择在与UI线程不同的线程上运行PhantomJS。您可以使用System.Threading.Tasks.Task来实现此目的。