private void GetListAsyncCompleted(object state)
        {
            m_busy = false;
            if (GetListCompleted == null)
            {
                return;
            }
            GetListAsyncCompletedEventArgs _EventArgs = (GetListAsyncCompletedEventArgs)state;

            try
            {
                GetListCompleted(this, _EventArgs);
            }
            catch (Exception ex)
            {
                m_Context.Log.WriteLine(String.Format("Exception {0} at GetListAsyncCompleted", ex.Message));
            }
            finally { m_busy = false; }
        }
        /// <summary>
        /// This method performs the actual workload to gets the list.
        /// </summary>
        /// <param name="listName">Name of the list.</param>
        /// <param name="asyncOp">The _ asynchronous property.</param>
        private void GetListAsyncWorker <TEntity>(string listName, CamlQuery camlQuery, AsyncOperation asyncOp, SendOrPostCallback onCompletedDelegate)
            where TEntity : class, ITrackEntityState, ITrackOriginalValues, INotifyPropertyChanged, INotifyPropertyChanging, new()
        {
            Exception      _Exception = null;
            List <TEntity> _Result    = null;

            try
            {
                _Result = m_Context.GetList <TEntity>(listName).Filter <TEntity>(camlQuery).ToList <TEntity>();
            }
            catch (Exception ex)
            {
                _Exception = ex;
            }
            // Package the results of the operation in a  GetListAsyncCompletedEventArgs.
            GetListAsyncCompletedEventArgs e = new GetListAsyncCompletedEventArgs(_Result, _Exception, false, asyncOp.UserSuppliedState);

            // End the task. The asyncOp object is responsible for marshaling the call.
            asyncOp.PostOperationCompleted(onCompletedDelegate, e);
        }