در دات نت 8، overload جدیدی برای متد ConfigureAwait اضافه شده است به نام ConfigureAwaitOptions
public enum ConfigureAwaitOptions { None = 0x0, ContinueOnCapturedContext = 0x1, SuppressThrowing = 0x2, ForceYielding = 0x4, }
ConfigureAwait(true):
پس از اتمام wait ادامه کار توسط همان Thread اولیه انجام میشود. اگر Thread در اختیار درخواست دیگری باشد، تا اتمام آن باید صبر مضاعف کرد! امکان بروز Deadlock وجود دارد. در عوض Thread synchronization context از دست نمیرود. زمانی که متد Async در یک متد غیر Async فراخوانی گردد نیز امکان Deadlock وجود دارد. رفتار پیشفرض .Net Framework همین گونه است!
ConfigureAwait(false):
پس از اتمام wait ادامه کار توسط یک Thread آزاد انجام میشود. که لزوما همان اولیه نیست، پس صبر اضافی لازم ندارد. از بروز Deadlock مربوط به این رفتار جلوگیری میشود. رفتار پیشفرض .Net Core این گونه است.