public virtual IEnumerator <ITask> PollHandler(Poll poll)
        {
            DateTime timeStamp = DateTime.Now;

            xinput.GamePadState gamepad = _state.GetState();

            if (_state.Update(timeStamp, gamepad))
            {
                if (_state.Controller.Update(gamepad))
                {
                    SendNotification <ControllerChanged>(_submgr, _state.Controller);
                }

                if (_state.DPad.Update(timeStamp, gamepad.DPad))
                {
                    SendNotification <DPadChanged>(_submgr, _state.DPad);
                }

                if (_state.Buttons.Update(timeStamp, gamepad.Buttons))
                {
                    SendNotification <ButtonsChanged>(_submgr, _state.Buttons);
                }

                if (_state.Triggers.Update(timeStamp, gamepad.Triggers))
                {
                    SendNotification <TriggersChanged>(_submgr, _state.Triggers);
                }

                if (_state.Thumbsticks.Update(timeStamp, gamepad.ThumbSticks))
                {
                    SendNotification <ThumbsticksChanged>(_submgr, _state.Thumbsticks);
                }
            }

            poll.ResponsePort.Post(DefaultSubmitResponseType.Instance);
            yield break;
        }