public void AddPageRequest(int pageIndex, DataSourcePageRequestPriority priority)
        {
            if (DeferAutoRefresh)
            {
                return;
            }

            if (_worker != null && _worker.IsShutdown)
            {
                _worker = null;
                _callback = null;
            }

            if (_worker == null)
            {
                CreateWorker();
            }

            if (priority == DataSourcePageRequestPriority.High)
            {
                _requests.AddFirst(pageIndex);
            }
            else
            {
                _requests.AddLast(pageIndex);
            }
            if (!_worker.AddPageRequest(pageIndex, priority))
            {
                _worker = null;
                _callback = null;
                AddPageRequest(pageIndex, priority);
            }
        }
        public void AddPageRequest(int pageIndex, DataSourcePageRequestPriority priority)
        {
            if (DeferAutoRefresh)
            {
                return;
            }

            if (_worker != null && _worker.IsShutdown)
            {
                _worker   = null;
                _callback = null;
            }

            if (_worker == null)
            {
                CreateWorker();
            }

            if (priority == DataSourcePageRequestPriority.High)
            {
                _requests.AddFirst(pageIndex);
            }
            else
            {
                _requests.AddLast(pageIndex);
            }
            if (!_worker.AddPageRequest(pageIndex, priority))
            {
                _worker   = null;
                _callback = null;
                AddPageRequest(pageIndex, priority);
            }
        }