Compartilhar via


Windows.System.Threading.Core Namespace

Cria itens de trabalho executados em resposta a eventos nomeados e semáforos. Também preallocates resources for work items that must be guaranteed the ability to run, even in circumstances of heavy (or full) resource allocation.

Observação

Há suporte para a API do ThreadPool para desktop, bem como para aplicativos UWP.

PreallocatedWorkItemQuando itens de trabalho são criados usando ThreadPool. RunAsync, o item de trabalho é criado e enviado como uma única operação. Isso é aceitável para a maioria dos cenários, mas às vezes é necessário reservar recursos para um item de trabalho com antecedência.

A classe PreallocatedWorkItem constrói um item de trabalho antecipadamente, colocando o item de trabalho "em espera" para que ele possa ser enviado ao pool de threads quando necessário. Isso é útil em circunstâncias em que os recursos disponíveis para seu aplicativo são completamente alocados antes que o item de trabalho seja necessário – por exemplo, chamar uma rotina de desalocação que usa um item de trabalho. Se um item de trabalho já tiver sido alocado, a rotina de desalocação de recursos ainda poderá ser chamada e PreallocatedWorkItem ainda poderá ser enviada para o pool de threads, mesmo que todos os recursos já estejam em uso. Às vezes, é necessário enfileirar itens de trabalho em resposta a eventos nomeados ou semáforos criados por objetos COM win32. Você pode executar um método Windows Runtime em resposta a um evento nomeado ou semáforo usando um objeto SignalNotifier. Isso permite que você escreva Windows Runtime código que responde a eventos e sinais enviados usando Win32 e COM para , desde que o evento ou semáforo tenha um nome. Por exemplo, o SignalNotifier pode ser usado para trabalhar com o código Win32 que está sendo portado para um aplicativo UWP. ISignalableNotifierOcasionalmente, não é possível saber o nome de um evento ou semáforo, mas seu aplicativo ainda precisa responder a ele; por exemplo, código herdado e alguns eventos e semáforos conhecidos, ainda usam identificadores de espera em vez de nomes. ISignalableNotifier permite que você crie objetos ISignalNotifier registrados com identificadores de espera.

Observação

Os itens de trabalho pré-alocados só são necessários para aplicativos que podem usar todos os recursos disponíveis ou que precisam criar itens de trabalho para rotinas de desalocação de recursos. Os notificadores de sinal só são aplicáveis a determinados aplicativos que usam Win32 e COM para . Se você não precisar usar pré-localização ou sinalização em seu aplicativo, crie itens de trabalho usando Windows.System.Threading.

Classes

PreallocatedWorkItem

Um item de trabalho pré-alocado é construído antes de seu envio ao pool de threads, garantindo que o item de trabalho seja construído para que ele possa ser enviado ao pool de threads quando necessário. Por exemplo, um PreallocatedWorkItem pode ser criado caso seja necessário para uma rotina de desalocação de recursos, uma vez que a rotina de desalocação de recursos pode ser chamada em circunstâncias em que não há recursos suficientes disponíveis para criar o item de trabalho.

Observação

Há suporte para a API do ThreadPool para desktop, bem como para aplicativos UWP.

SignalNotifier

Executa um método quando um evento ou semáforo é sinalizado. Um valor de tempo limite também pode ser especificado, fazendo com que o delegado seja executado após o intervalo de tempo ter decorrido se o evento nomeado não ocorrer (ou se o semáforo não atingir um estado sinalizado).

Observação

Há suporte para a API do ThreadPool para desktop, bem como para aplicativos UWP.

Delegados

SignalHandler

Representa um método chamado quando um evento ou semáforo anexado de um notificador de sinal é sinalizado ou quando o valor de tempo limite opcional é decorrido (o que vier primeiro).