/// <summary> /// Конструктор, принимающий операцию, которя сменит контекст /// </summary> /// <param name="supplier">Поставщик контекста</param> public ContextSwitchAwaiter(IContextSwitchSupplier supplier) { _supplier = supplier; }
/// <summary> /// Конструктор, принимающий целевой контекст синхронизации /// </summary> /// <param name="targetContext">Целевой контекст синхронизации</param> public ContextSwitchAwaitable(SynchronizationContext targetContext) { Contract.Requires(targetContext != null); _supplier = new ContextSwitchFromSynchroContextSupplier(targetContext); }
/// <summary> /// ContextSwitchAwaitable constructor /// </summary> /// <param name="targetContext">Target synchronization context</param> public ContextSwitchAwaitable(SynchronizationContext targetContext) { TurboContract.Requires(targetContext != null, conditionString: "targetContext != null"); _supplier = new ContextSwitchFromSynchroContextSupplier(targetContext); }
/// <summary> /// Конструктор для случая внешней смены контектса /// </summary> /// <param name="supplier">Поставщик смены контекста</param> public ContextSwitchAwaitable(IContextSwitchSupplier supplier) { Contract.Requires(supplier != null); _supplier = supplier; }
/// <summary> /// ContextSwitchAwaitable constructor /// </summary> /// <param name="supplier">Context switch supplier</param> public ContextSwitchAwaitable(IContextSwitchSupplier supplier) { TurboContract.Requires(supplier != null, conditionString: "supplier != null"); _supplier = supplier; }