Visual Studio 2010宏在启动对话框时挂起

3
我编写了一个,启动对话框,用户可以从下拉框中选择一个值。不幸的是,对话框会显示,并且我会在1到20秒之间看到沙漏。
我发现了几个解决方法,似乎有所帮助:
  1. 快速按下CTRL-Alt-Del,然后按Escape键。
  2. 单击任务栏中旋转的宏动画。
  3. 从任务栏最小化,然后最大化对话框。
但这真的很烦人,有人知道是什么原因导致这种情况吗?我该如何防止程序卡住?
我用来启动对话框的代码是:
    Dim winptr As New WinWrapper()
    frm.ShowDialog(winptr)

并且

'' This class is used to set the proper parent to any UI that you may display from within a macro.
Public Class WinWrapper
    Implements System.Windows.Forms.IWin32Window

    Overridable ReadOnly Property Handle() As System.IntPtr Implements System.Windows.Forms.IWin32Window.Handle
        Get
            Dim iptr As New System.IntPtr(DTE.MainWindow.HWnd)
            Return iptr
        End Get
    End Property
End Class

我尝试设置你的宏,对我来说完美无缺(非常实用!)没有延迟或其他问题... 这是在使用VS2010 SP1的情况下,如果你还没有安装SP,那么可能值得去安装一下。 - Fergus Bown
谢谢,我尝试安装了SP1,但好像没有什么改变 :-( - openshac
4个回答

1

每当我的宏调用MsgBox函数时,我会遇到类似的卡顿问题。 似乎在重新运行宏几次后,这些卡顿问题就会消失(这可能是错误所在的提示),但这也不是可行的解决方案。


是的,这正是我得到的,但奇怪的是其他一些开发人员根本没有任何问题。 - openshac
我使用MsgBox()和InputBox()时出现了相同的行为,使用的是VS2010,所有更新都已应用至今。 - Samuel

0

0
如果您安装了SP1,将会有几个错误修复,包括修复VS 2010挂起和Visual Studio“虚拟内存不足错误”。

谢谢,我尝试安装SP1,但似乎没有什么改变 :-( - openshac
很抱歉听到这个消息,不幸的是,解决轻微的性能问题通常很难,除非您正在查看系统本身。它是否有足够的RAM?是否有其他程序在运行?是否有某些东西占用了磁盘I/O?有许多因素需要考虑。在Windows上非常有用的一件事是使用Process Explorer。它可以帮助您隔离问题。http://technet.microsoft.com/en-us/sysinternals/bb896653 - jcpennypincher
#jcpennypincher 感谢您的建议。我不确定这是否是性能问题,因为我上面提出的解决方法可以立即起作用。但是,如果有关联的话,我有4GB的RAM和2GHz处理器运行在64位操作系统上 - 这应该足以立即启动对话框。然而,我会试试Process Explorer,看看它是否有什么发现。 - openshac

0
关闭VS宏编辑器通常对我的问题进行了正确的更正。我仍然看到2到3秒的延迟。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接