Beispiel #1
0
        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;
    }