نمونهای از پیادهسازی متدهای Async/Await در ذیل نشان داده شده است:
private async Task<string> GetLDAPDetails_Async(string userName) { string _Result = string.Empty; // Creating the PrincipalContext PrincipalContext principalContext = null; try { // ToDo } catch (Exception err) { LogFile.WriteMessage("Failed to create PrincipalContext. Exception: " + err); } UserPrincipal usr = null; await Task.Run(() => { usr = UserPrincipal.FindByIdentity(principalContext, userName); if (usr == null) { LogFile.WriteMessage(userName + " Please use a Correct User Logon Name."); _Result = $"کاربر مورد نظر پیدا نشد ❗"; } else { string temp = string.Empty; if (usr.Enabled.HasValue) { temp = ((usr.Enabled.Value) ? "فعال" : "غیرفعال"); } else { temp = "نامعلوم"; } _Result = $"کاربر مورد نظر در اکتیودایرکتوری وجود دارد و [{temp}] است."; } }); return _Result; }
سپس متد را به این شکل فراخوانی میکنیم:
Task<string> LDAPdetails = GetLDAPDetails_Async(userName); lblLDAP.Text = await LDAPdetails;
اگر چندین متد داشتیم که باید همه آنها کامل شده و سپس پیامی را نمایش دهیم از این کد استفاده میکنیم:
if (Task.WhenAll(LDAPdetails, Peyvast, jobStatus).IsCompleted) { lblStatusMessage.Text = "انجام شد."; }
لینکی دیگر برای توضیحات اضافه، اینجا وجود دارد