public void Listen()
 {
     if (_isXinput)
     {
         _inputListener = new Thread(() => _joystickControlXInput.Listen());
         _inputListener.Start();
     }
     else
     {
         _inputListener = new Thread(() => _joystickControlDirectInput.Listen());
         _inputListener.Start();
     }
 }
 public void Listen()
 {
     if (_inputApi == InputApi.DirectInput)
     {
         _inputListener = new Thread(() => _joystickControlDirectInput.Listen());
         _inputListener.Start();
     }
     else if (_inputApi == InputApi.XInput)
     {
         _inputListener = new Thread(() => _joystickControlXInput.Listen());
         _inputListener.Start();
     }
     else if (_inputApi == InputApi.RawInput)
     {
         _joystickControlRawInput.Listen();
     }
 }