【问题标题】:Visual Studio 2008 Macro for Building does not block thread用于构建的 Visual Studio 2008 宏不会阻塞线程
【发布时间】:2009-10-06 15:22:35
【问题描述】:

我正在尝试编写一个宏来构建我的应用程序,启动一个外部工具,并将调试器附加到该外部工具。

除建筑物外,一切正常。它会构建,但不会阻塞线程,因此外部工具在完成​​之前就被启动了。有没有办法可以运行 ExecuteCommand 并等待线程完成?

代码如下:

    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Build")
    DTE.ExecuteCommand("Tools.ExternalCommand11")

    Try
        Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
        Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
        Dim dbgeng(1) As EnvDTE80.Engine
        dbgeng(0) = trans.Engines.Item("Managed")
        Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "MINIPC").Item("_nStep.exe")
        proc2.Attach2(dbgeng)
    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try

【问题讨论】:

    标签: visual-studio vba visual-studio-2008 external-tools


    【解决方案1】:

    我相信这是在这个线程上回答的:

    Run Visual Studio 2008 Macro on Pre Build Event

    【讨论】:

      【解决方案2】:

      如果您将调试器附加到第一个进程 ClassViewContextMenus.ClassViewProject.Build 以及第二个进程,那么主机进程可能会阻塞,直到第一个进程完成。或者以其他方式获取第一个进程的进程句柄并等待它退出。鉴于您正在做的聪明的调试器的工作,我假设您会比我更了解如何做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-24
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        • 2010-11-15
        • 2021-10-19
        • 2014-04-03
        相关资源
        最近更新 更多