/// <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); }
/// <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 }