Exemplo n.º 1
0
        /// <summary>
        /// Receive an arbitary object asynchronously.
        /// </summary>
        public async System.Threading.Tasks.Task <object> ReceiveAsync()
        {
            var ts = new System.Threading.Tasks.Task <object>(() => Receive());

            ts.Start();
            return(await ts);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="path">Excel文件路径</param>
        /// <param name="objectProps">转换规则</param>
        /// <param name="worksheetIndex">获取工作表Index 默认获取第一张工作表内容( Index = 0 )</param>
        /// <param name="isContainLieDingYi">是否含有列定义行, 默认true</param>
        /// <param name="lieDingYi_RowIndex">首位列定义 RowIndex</param>
        /// <param name="lieDingYi_ColumnIndex">首位列定义 ColumnIndex</param>
        /// <returns></returns>
        public void WorkSheet2ListAsync <T>(Action <Task <List <T> > > actionHandler, string path, List <PropertyColumn> objectProps, int worksheetIndex = 0,
                                            bool isContainLieDingYi = true, int lieDingYi_RowIndex = 0, int lieDingYi_ColumnIndex = 0, bool ignoreRepeatColumnName = false
                                            ) where T : class, new()
        {
            Task <List <T> > mTask = new System.Threading.Tasks.Task <List <T> >(() => WorkSheet2List <T>
                                                                                 (
                                                                                     path: path,
                                                                                     objectProps: objectProps,
                                                                                     worksheetIndex: worksheetIndex,
                                                                                     isContainLieDingYi: isContainLieDingYi,
                                                                                     lieDingYi_RowIndex: lieDingYi_RowIndex,
                                                                                     lieDingYi_ColumnIndex: lieDingYi_ColumnIndex,
                                                                                     ignoreRepeatColumnName: ignoreRepeatColumnName
                                                                                 )
                                                                                 );

            mTask.ContinueWith((task) => actionHandler(task));
            mTask.Start();

            #region (UI代码参考)下载完毕 Handler 可以参考以下代码

            //public void DownloadFileByHttpRequestAynsc_Handler(System.Threading.Tasks.Task task)
            //{
            //    string msg = "IsCanceled={0}\nIsCompleted={1}\nIsFaulted={2};"
            //    .FormatWith
            //    (
            //        task.IsCanceled,  // 因被取消而完成
            //        task.IsCompleted, // 成功完成
            //        task.IsFaulted    // 因发生异常而完成
            //    );

            //    Console.WriteLine(msg);

            //    if (task.IsFaulted == true)
            //    {
            //        if (task.Exception != null)
            //        {
            //            Console.WriteLine(task.IsFaulted);
            //            MessageBox.Show(task.Exception.GetFullInfo());
            //        }
            //        else
            //        {
            //            MessageBox.Show("下载失败。");
            //        }
            //    }
            //    else
            //    {
            //        MessageBox.Show("下载完成。");
            //    }
            //}

            #endregion
        }