我有一個異步方法,它從MySql服務器查詢數據並將它們寫入txt文件中。 (我沒有找到從異步方法返回字符串的方法)。先後調用異步方法和同步方法
然後,我必須調用一個簡單的同步方法來讀取txt文件。
我的代碼如下所示:
var sql = new ProjetTN.Class.SQLite();
sql.GetSens("101"); //<--- This is an async method
var SensItems = sql.ListeSens(); //<--- This method return a List<string>
但如果我喜歡運行的代碼,異步方法將被跳過,不會寫txt文件。之後,同步方法將嘗試讀取txt文件,但他不存在,所以程序將崩潰。
在我的研究,我發現,我需要等待異步方法是完整的,所以我嘗試:
public void CallGetSens()
{
var task = GetSens("101");
task.Wait();
}
當我調用的方法:
var sql = new ProjetTN.Class.SQLite();
sql.CallGetSens(); //<--- This is an async method
var SensItems = sql.ListeSens(); //<--- This method return a List<string>
但這只是凍結程序...
那麼我怎麼能連續調用異步方法然後同步方法? 否則,我怎樣才能從異步方法返回一個字符串?
我建議你做的異步/ AWAIT一些閱讀。 –
@CharlesMager你對我的建議有什麼看法? :) –
對於初學者:[使用異步和等待的異步編程](https://msdn.microsoft.com/en-us/library/mt674882.aspx)。另外[控制異步程序中的流程](https://msdn.microsoft.com/zh-cn/library/mt674892.aspx) – Igor