JoinableTaskFactory.DisableProcessing Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запрещает отфильтрованные насосы сообщений работать во время синхронных ожиданий окружающей среды JoinableTask.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation
Возвращаемое значение
Значение, которое может быть удалено, когда необходимо отключить синхронные насосы сообщения ожидания. Кроме того, его можно отменить, если остальная JoinableTask часть объекта предназначена для отключения обработки.
Исключения
Вызывается при вызове вне контекста JoinableTaskобъекта.
Примеры
Ниже приведены простые распространенные варианты использования этого метода:
Ниже приведены дополнительные примеры использования:
Комментарии
Во время получения await в пределах JoinableTask, ни один насос сообщения никогда не выполняется независимо от того, вызывается ли этот метод, за исключением внутреннего, который позволяет только в соответствующей работе. Когда пользовательский код выполняется в JoinableTask делегате или его вызывающих объектах, которые в конечном итоге требуют синхронного блока основного потока (например, синхронного ввода-вывода или блокировки), это ожидание обычно реализуется путем вызова Wait(IntPtr[], Boolean, Int32)Current. Реализация этого метода по умолчанию позволяет выполнять определенные прерывания (e.g. COM вызовы RPC), что может избежать взаимоблокировок в определенных ситуациях.
Вызов этого метода заменит реализацию Wait(IntPtr[], Boolean, Int32) по умолчанию одной, которая не позволит таким прерываниям во время JoinableTask активного и контроля Current. Так как этот метод может вызываться несколько раз, этот эффект остается на целевом объекте JoinableTask до тех пор, пока все DisableProcessing() возвращаемые значения вызовов не будут удалены (в любом порядке). Эффект применяется только к прямой JoinableTask. Это не влияет ни на одного из своих детей или родителей.
Отключение обработки не влияет на операционные системы, отличные от Windows.
Удаление результирующего значения приведет к поведению по умолчанию. Вызывающие абоненты никогда не должны удалять это значение, если намерение — отключить обработку для остальной части выполнения.JoinableTask