Multithreading Powershell实例锁定主线程

Multithreading Powershell实例锁定主线程,multithreading,winforms,powershell,internet-explorer,runspace,Multithreading,Winforms,Powershell,Internet Explorer,Runspace,我有一个带有Windows窗体UI的Powershell脚本,我从中创建了一个新的Powershell实例,它反过来启动IE(隐藏)并从网站获取信息 有时UI会锁定,只有在通过任务管理器手动终止隐藏的IE进程后才会再次响应。 看起来IE冻结了,这锁定了UI 我主要是想了解为什么会发生这种情况。虽然它每天都在发生,但到目前为止,我无法通过故意创建一个没有响应的新线程来重现它。 我还认为一个新实例无论如何都不能锁定主线程,或者我错了,这是意料之中的吗 $script:Posh1 = [PowerSh

我有一个带有Windows窗体UI的Powershell脚本,我从中创建了一个新的Powershell实例,它反过来启动IE(隐藏)并从网站获取信息

有时UI会锁定,只有在通过任务管理器手动终止隐藏的IE进程后才会再次响应。 看起来IE冻结了,这锁定了UI

我主要是想了解为什么会发生这种情况。虽然它每天都在发生,但到目前为止,我无法通过故意创建一个没有响应的新线程来重现它。 我还认为一个新实例无论如何都不能锁定主线程,或者我错了,这是意料之中的吗

$script:Posh1 = [PowerShell]::Create()
$script:Posh1.AddScript($IEcode)
$script:Posh1.AddParameter("url1",$url1)
$script:Posh1.AddParameter("url2",$url2)
$script:Posh1.BeginInvoke()

尝试在IE中手动执行整个过程,并检查是否存在可以使IE对象无响应的内容。例如,检查网页中是否有需要关闭以释放对象的警报或弹出框。尝试提供有关该问题的更多信息。如果该站点是公开的,那么您可以尝试提供您的示例脚本来测试我们端的问题。它可以帮助我们更好地理解这个问题。谢谢,但我知道什么能让IE冻结:现在几乎所有的东西。:)我的问题不是IE变得没有反应,事实上我有一个whatchdog函数,如果发生这种情况,它会杀死IE。我的问题是IE线程锁定了主线程,因此我的看门狗功能不再工作。我想知道是否有什么我可以做的,或者解决方案是否必须创建一个单独的进程(我喜欢避免),在这种情况下,您必须使用多个线程。这样,您可以通过使用其他线程检查IE的就绪状态来检查IE是否响应。我以为我已经在这样做了。:-)还是说多个过程?如果[PowerShell]::Create()不创建新线程,那么会创建什么?谢谢是的,这很正常。在许多情况下,IE都会这样做。在你的情况下,我们需要找到IE为什么这么做。您上面的代码示例不会给出任何有关这方面的信息。您需要发布详细的示例代码来检查问题。请尝试在IE中手动执行整个过程,并检查是否存在导致IE对象无响应的情况。例如,检查网页中是否有需要关闭以释放对象的警报或弹出框。尝试提供有关该问题的更多信息。如果该站点是公开的,那么您可以尝试提供您的示例脚本来测试我们端的问题。它可以帮助我们更好地理解这个问题。谢谢,但我知道什么能让IE冻结:现在几乎所有的东西。:)我的问题不是IE变得没有反应,事实上我有一个whatchdog函数,如果发生这种情况,它会杀死IE。我的问题是IE线程锁定了主线程,因此我的看门狗功能不再工作。我想知道是否有什么我可以做的,或者解决方案是否必须创建一个单独的进程(我喜欢避免),在这种情况下,您必须使用多个线程。这样,您可以通过使用其他线程检查IE的就绪状态来检查IE是否响应。我以为我已经在这样做了。:-)还是说多个过程?如果[PowerShell]::Create()不创建新线程,那么会创建什么?谢谢是的,这很正常。在许多情况下,IE都会这样做。在你的情况下,我们需要找到IE为什么这么做。您上面的代码示例不会给出任何有关这方面的信息。您需要发布详细的示例代码来检查问题。