2017-08-10 156 views
0

enter image description here異步調用WCF回服務開發

我是開發WCF服務這是很好的,有回報OperationContract的數據集,畫面顯示,我的問題是如何使這OperationContract的方法ASYN?

[OperationContract(Name ="GetBirthday")] 
     [WebGet] 
     DataSet GetEmployeeBirthDateDetail(List<string> birthdayStringlist, out string userExceptionMessage); 

public DataSet GetEmployeeBirthDateDetail(List<string> birthdayStringlist , out string message) 
     { 
      try 
      { 
       string scripts; 
       List<string> outlist = new List<string>(); 
       generateScripts gs = new generateScripts(); 
       StringValidation sv = new StringValidation(); 
       DataSet ds = new DataSet(); 
       message = sv.validate(birthdayStringlist, out outlist); 

       if (message == "") 
       { 

        scripts = gs.GenerateScripts(outlist, employeetype.GenerateScripts_BdayEmp); 
        message = "success"; 
        return api.GetEmployeeDetails(scripts); 
       } 

       else 
       { 
        message = "No records to provide"; 
        return null; 
       } 
      } 
      catch (Exception ex) 
      { 

       message = ex.Message; 
       WriteToLog(ex.Message); 
       return null; 
      } 
     } 
+0

返回一個任務。請參閱[使用異步/等待的WCF中的簡化異步編程模型](https://blogs.msdn.microsoft.com/endpoint/2010/11/12/simplified-asynchronous-programming-model-in-wcf-with-asyncawait/ ) – stuartd

+0

謝謝,我發現解決方案使用awit關鍵詞來返回數據集異步任務 – christopher

回答

0

公共異步任務GetGetEmployeeJoinDateDetailAsync(名單joindateStringlist) { 嘗試 { 串腳本; List outlist = new List(); generateScripts gs = new generateScripts(); StringValidation sv = new StringValidation();

  if (sv.validate(joindateStringlist, out outlist) == "") 
      { 

       scripts = gs.GenerateScripts(outlist, employeetype.GenerateScripts_NewJoin); 
       return await Task.Factory.StartNew(() => api.GetEmployeeDetails(scripts)) ; 
      } 
      else 
      { 
       return null; 
      } 

     } 

     catch (Exception ex) 
     { 

      WriteToLog(ex.Message); 
      return null; 
     } 
    }