請教 C 非同步 async await 問題
==========更新2017.06.15============
現在修改了非同步方法,執行不會報錯,程序正常結束。
調用非同步方法:
不過新的問題:
return 語句會先於非同步方法執行,非同步方法的耗時比較長,前端會等待非同步方法執行完才真正return。
雖然return json先執行,但是會等待非同步方法中System.Diagnostics.Debug.WriteLine("GetSubsBySubsIdList End: " + result.ToString); 這個執行完才返回json。
如果非同步方法超時,前端還是會timeout。怎樣才能避免前端timeout,非同步方法還能調用呢?
這是為什麼呢?
==========更新2017.06.15============
之前對C#非同步只是膚淺了解,請教一個問題。
描述:
前台會發送一個Array,這個數組都是 id的集合,比較大。分兩步,首先保存這些id,然後去調用非同步方法。
可以正常返回json,也可以調用非同步方法。但是過一會兒,非同步方法運行完就報錯。
這個 返回值 result 沒有使用。
想要保存id,也要通知非同步方法開始運行。不等非同步方法執行完,提前返回json,不然前端會timeout。
code:
public ActionResult AjaxAddSubcription(string LSINumber, string[] SubIdArr, int currentV)
{
var returnJson = new AjaxJsonModel
{
ResultCode = -1,
Message = "Add subs failed, pleast try it again.",
};
var newSubIds = SubIdArr.Distinct.ToList;
// call Async method
var result = ProcessDataAsync(newSubIds);
//do other things
//.....
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
//async method 程序會出錯,錯誤信息: 如果注釋掉這個非同步調用,可以正常運行。
static async Task
{
return await Task.Run( =>
{
// call api
return SubscriptionDataHelper.GetSubsBySubsIdList(subIdList);
});
}
這個非同步方法執行完後,程序是什麼狀態?會結束運行釋放資源么?
謝謝園友指教。


※C簡單構架之EF進行讀寫分離+多資料庫(Mysql/SqlService)
※vue 高德地圖之玩轉周邊
※在windows下使用Qt5開發GTK3圖形界面應用程序
※angular2/angular4 如何通過$http的post方法請求下載二進位的Excel文件
※帶著問題寫React Native原生控制項--Android視頻直播控制項
TAG:科技優家 |
※請教 QuarkChain,Zilliqa 和以太坊的 Sharding 分片技術有無異同?
※熊黛林發文感嘆嫁對人了,孕照超美,常向Angelababy請教育兒經
※Summer實習申請教訓全紀錄
※五歲Jasper在家自己洗衣服,謝娜、穎兒趕忙嚮應采兒請教育兒經
※hold不住刺骨寒風?快請教泰迪熊大衣,保暖又好看
※DNF剛剛學會上網衝浪,有個問題想請教各位勇士
※孩子成為"老好人"?教孩子"分享"之前請教孩子"自私"
※熊黛林發文,慶幸自己沒有嫁給郭富城,並像baby請教育兒經
※匿名求助 | 我有個疑問想請教大家,女性原畫師,如果準備備孕,公司會不會因為你帶薪休產假的原因,而勸退你?-7.GAME
※雷軍向李嘉誠展示小米MIX 2S/6X 請教中美貿易糾紛問題
※王源是TFBOYS中最先承認拍過感情戲的,王俊凱和千璽會向他請教嗎
※你以為TA在謗佛 實際他是用自己的方式向你請教佛法
※重要的事說三遍,請教請教請教一下
※學游泳需要請教練嗎?
※孩子學習不主動,遇到問題不去請教,怎麼辦?
※2018.9.9十二生肖運程,可嘗試請教有實學之前輩為己解困
※我相親了,但是有一個問題想請教……
※「我姐姐讓我加你,有事請教」……
※初學者要不要請教練?還是自己先摸索一下?
※請教大家一個問題:諾亞和賽迦的功夫是誰教的?