Пример #1
0
        private void RepeatButtonPressed(Xbox360ControllerButton button, int repeatDelay, int repeatRate, CancellationToken token)
        {
            Action action = null;

            action = new Action(() =>
            {
                if (token.IsCancellationRequested)
                {
                    return;
                }

                try
                {
                    Task.Delay(repeatRate).Wait(token);
                }
                catch (OperationCanceledException) { }

                if (token.IsCancellationRequested)
                {
                    return;
                }
                OnButtonPressed(button);

                Task.Run(action);
            });

            Action wrapper = new Action(() =>
            {
                if (token.IsCancellationRequested)
                {
                    return;
                }

                try
                {
                    Task.Delay(repeatDelay).Wait(token);
                }
                catch (OperationCanceledException) { }

                if (token.IsCancellationRequested)
                {
                    return;
                }
                Task.Run(action);
            });

            Task.Run(wrapper);
        }
Пример #2
0
 public Xbox360ControllerButtonEventArgs(Xbox360ControllerButton button)
 {
     _button = button;
 }
Пример #3
0
 protected virtual void OnButtonPressed(Xbox360ControllerButton button)
 {
     ButtonPressed?.Invoke(this, new Xbox360ControllerButtonEventArgs(button));
 }