asp.NetCore非同期プログラム改造で発生した問題

4846 ワード

公衆番号でnetCoreプログラムの性能向上に関する記事を見て、非同期プログラミングを使うという考えをまとめると、async Taskやawaitキーワードをプログラムに追加し、前にファイルアップロードしたコントローラを書いたことがあり、非同期を使ったが、今回はいっそプログラムをライブラリから非同期方法に変更し、マイクロソフト関連の方法にも同様の非同期方法がある.次に出会ったいくつかの小さな問題についてお話しします
1、ToList()この非同期の方法はToListAsyncであり、using Microsoftを参照する必要がある.EntityFrameworkCore;
2、フィルターの非同期方法を書き直して、方法の中のnextは本当にどのように使うことを知らないで、知っている大侠が伝言を残して教えることができます /// /// /// /// public override async Task OnActionExecutionAsync(ActionExecutingContext filterContext, ActionExecutionDelegate next) { if (_auth.CheckLogin() == false) { filterContext.HttpContext.Response.Cookies.Append("wangbg_login_error", "overdue"); filterContext.Result = new RedirectResult("/Manage/Login"); return; } if (Ignore == true) { await base.OnActionExecutionAsync(filterContext, next); return; } var tempUser = _auth.GetCurrentUser(); if (tempUser.IsSystem == true) { await base.OnActionExecutionAsync(filterContext, next); return; } var request = filterContext.HttpContext.Request; var moduleId = request.Cookies["currentmoduleid"]; if (string.IsNullOrEmpty(moduleId) == true) { throw new Exception(" ! , !"); } var tempRet = await _sysRoleAuthorizeApp.ActionValidate(tempUser.SysRoleId, moduleId, request.Path); if (tempRet == false) { throw new Exception(" ! , !"); } await base.OnActionExecutionAsync(filterContext, next); }
次に,プログラム中のredisキャッシュ操作に関する方法も改造する.
転載先:https://www.cnblogs.com/wangbg/p/10536008.html