public int EnumProcesses(out IEnumDebugProcesses2 processEnum) { IDebugProcess2[] processes = EnumProcessesInternal(); processEnum = new AD7ProcessEnum(processes); return(HR.S_OK); }
public int EnumProcesses(out IEnumDebugProcesses2 processEnum) { IEnumDebugProcesses2 result = null; var connection = GetConnection(ConnectionReason.Deferred); if (connection == null) { processEnum = null; return(HR.E_REMOTE_CONNECT_USER_CANCELED); } VS.VSOperationWaiter.Wait(StringResources.WaitingOp_ExecutingPS, throwOnCancel: true, action: () => { List <PSOutputParser.Process> processList = connection.ListProcesses(); IDebugProcess2[] processes = processList.Select((proc) => new AD7Process(this, proc)).ToArray(); result = new AD7ProcessEnum(processes); }); processEnum = result; return(HR.S_OK); }
public int EnumProcesses(out IEnumDebugProcesses2 processEnum) { IEnumDebugProcesses2 result = null; var connection = GetConnection(); if (connection == null) { // Don't return a failure to prevent vsdebug.dll from showing an error message processEnum = new AD7ProcessEnum(Array.Empty <IDebugProcess2>()); return(HR.S_OK); } VS.VSOperationWaiter.Wait(StringResources.WaitingOp_ExecutingPS, throwOnCancel: true, action: (cancellationToken) => { List <Process> processList = connection.ListProcesses(); IDebugProcess2[] processes = processList.Select((proc) => new AD7Process(this, proc)).ToArray(); result = new AD7ProcessEnum(processes); }); processEnum = result; return(HR.S_OK); }