从外接程序调用WPF时Excel关闭缓慢

从外接程序调用WPF时Excel关闭缓慢,wpf,vb.net,excel,add-in,Wpf,Vb.net,Excel,Add In,我有一个Excel外接程序,上面有一个按钮,可以在新线程上调用WPF应用程序。当我在没有打开WPF应用程序的情况下关闭Excel时,或者在打开它然后再次关闭它之后,Excel会立即关闭。然而,每当我打开应用程序然后关闭Excel时,Excel需要5-10秒才能关闭。我只遇到过这些解决方案,它们都没有帮助: 我正在运行VS 2010和Excel 2010,所以不应该存在互操作性问题 有人有什么建议吗 线程代码: Private qbdThread As Thread = Nothing P

我有一个Excel外接程序,上面有一个按钮,可以在新线程上调用WPF应用程序。当我在没有打开WPF应用程序的情况下关闭Excel时,或者在打开它然后再次关闭它之后,Excel会立即关闭。然而,每当我打开应用程序然后关闭Excel时,Excel需要5-10秒才能关闭。我只遇到过这些解决方案,它们都没有帮助:

我正在运行VS 2010和Excel 2010,所以不应该存在互操作性问题

有人有什么建议吗

线程代码:

Private qbdThread As Thread = Nothing
Private frmQBD As QBDApplication.MainWindow

qbdThread = New Thread(New ParameterizedThreadStart(AddressOf RunQBD))
qbdThread.SetApartmentState(Threading.ApartmentState.STA)
qbdThread.Start(TabletType)
AddHandler QBDApplication.MainWindow.QBDClose, AddressOf QBDThreadClose

Private Sub RunQBD(Optional tabletQBDSelected As String = Nothing)
...

frmQBD = New QBDApplication.MainWindow(contacts, saveLocation, tabletQBDLocal)
frmQBD.Show()
frmQBD.Activate()
System.Windows.Threading.Dispatcher.Run()
End Sub
此代码在用户在新线程上关闭应用程序时运行:

Me.Close()
System.Windows.Threading.Dispatcher.CurrentDispatcher.InvokeShutdown()
然后在主线程(ThisAddin.vb)上引发一个事件,代码如下:

Private Sub QBDThreadClose()
    qbdThread = Nothing
    frmQBD = Nothing
End Sub
另一件需要注意的事情是,如果frmQBD不是作为类变量创建的,而是在“RunQBD”子项中进行标注,则不会出现此问题。这将解决我的问题,但这样我就无法在主线程上访问像frmQBD.Activate()这样的东西,这是我需要能够做到的


编辑:代码已更新

中描述了此Microsoft错误。它最初在2013年发布,预计在2014年修复,但现在似乎又回来了

我们可以用运行在Windows 10上的Excel和Word 2016重现这个问题,但不可思议的是,PowerPoint中却没有。已安装最新版本的VSTO运行时。我们无法在运行Windows 8.1的Office 2013中重现此问题


解决方法如上面的链接所述--转到设备管理器>人机界面设备并禁用“HID兼容触摸屏”(在我们的测试中)或另一个“HID兼容”项。

我们找到了解决此问题的方法

您必须在框架中设置一个

Public Sub EnablePointerSupport()
AppContext.SetSwitch("Switch.System.Windows.Input.Stylus.EnablePointerSupport",True)
End Sub

您可以找到有关它的更多信息。

您是否尝试过安装第一个链接中提到的更新,以检查这是否解决了问题?是的,这就是我提到它的原因。应该更清楚。Windows10(1903)和一个新的表面设备也有同样的问题。有什么建议吗?更新:我们现在可以在运行Windows 8.1的Office 2013中重现该问题。在安装了最新的Office更新后发现了此问题,但我们无法确认更新是否对此行为负责。无论如何,这个问题似乎只是在2014年修复后才扩大了范围。你刚刚帮助我解决了过去6个月在吉拉一直困扰着我的问题!谢谢你发布你的答案!