private static int StartAdbAndListener() { var handles = new ManualResetEvent[2]; var listenerHandle = new ManualResetEvent(false); Action listenerAction = () => { try { StartListener(); } finally { listenerHandle.Set(); } }; handles[0] = listenerHandle; ThreadPool.QueueUserWorkItem(x => listenerAction()); var adbHandle = new ManualResetEvent(false); Action adbAction = () => { try { _adbActivtiyLaunchCommand = new AdbActivtiyLaunchCommand(Options.Activity, Options.AdbPath); if (Options.AdbParams != null && Options.AdbParams.Count > 0) { _adbActivtiyLaunchCommand.AdbParams = Options.AdbParams; } _adbActivtiyLaunchCommand.Execute(); } finally { adbHandle.Set(); } }; handles[1] = adbHandle; ThreadPool.QueueUserWorkItem(x => adbAction()); WaitHandle.WaitAll(handles); if (_connectionListener != null && _adbActivtiyLaunchCommand != null) { if (_connectionListener.ExitCode == 0 && _adbActivtiyLaunchCommand.ExitCode == 0) { return(0); } } return(-1); }
private static int StartAdbAndListener() { var handles = new ManualResetEvent[2]; var listenerHandle = new ManualResetEvent(false); Action listenerAction = () => { try { StartListener(); } finally { listenerHandle.Set(); } }; handles[0] = listenerHandle; ThreadPool.QueueUserWorkItem(x => listenerAction()); var adbHandle = new ManualResetEvent(false); Action adbAction = () => { try { _adbActivtiyLaunchCommand = new AdbActivtiyLaunchCommand(Options.Activity, Options.AdbPath); _adbActivtiyLaunchCommand.Execute(); } finally { adbHandle.Set(); } }; handles[1] = adbHandle; ThreadPool.QueueUserWorkItem(x => adbAction()); WaitHandle.WaitAll(handles); if (_connectionListener != null && _adbActivtiyLaunchCommand != null) { if (_connectionListener.ExitCode == 0 && _adbActivtiyLaunchCommand.ExitCode == 0) { return 0; } } return -1; }