Visão geral da API do Coordenador de Atividades

A API do Coordenador de Atividades coordena a execução de tarefas transferíveis, chamadas atividades, em um sistema Windows.

As atividades podem adiar sua execução para um momento em que o sistema esteja em um estado desejado, quando a execução da tarefa não interferir na experiência do usuário ou no desempenho do sistema. Isso permite que o consumo total de aplicativos no sistema seja distribuído de forma mais uniforme nos momentos em que o usuário está inativo ou o sistema está ocioso. A API fornece coordenação centralizada dessas decisões para ajudar a evitar cenários em que os aplicativos degradam a experiência do usuário competindo por recursos do sistema.

Uso

Os desenvolvedores usam a API definindo políticas que descrevem o estado desejado do sistema durante o qual desejam executar suas atividades. Ao assinar essas políticas, os desenvolvedores são notificados quando iniciar ou interromper suas atividades com base na satisfação das condições de suas políticas. A API coordena essas notificações entre as assinaturas no sistema para fornecer uma determinação centralizada de qual é o momento apropriado para executar o trabalho transferível.

O uso da API não impede que os aplicativos executem o trabalho que acharem melhor. Ele depende deles para serem bons cidadãos, escolhendo políticas apropriadas e tomando decisões de execução em resposta a notificações de API. Além disso, o uso da API requer que o processo de chamada esteja em execução. Os aplicativos não devem depender da API do Coordenador de Atividades para trabalhos de alta prioridade que precisam ser executados independentemente das condições do sistema.

O Windows tem várias APIs disponíveis para desenvolvedores para adiar ou agendar tarefas. Use o guia a seguir para determinar qual API é melhor para seu aplicativo.

API Uso pretendido
Coordenador de atividades Use o Coordenador de Atividades para coordenar a execução de tarefas transferíveis com base nas condições desejadas do sistema.
BITS (serviço de Transferência Inteligente em Segundo Plano) O BITS é usado por programadores e administradores de sistema para baixar ou carregar arquivos em servidores Web HTTP e compartilhamentos de arquivos SMB. Ele levará em consideração o custo da transferência, bem como o uso da rede para que o trabalho de primeiro plano do usuário tenha o menor impacto possível.
Agendador de Tarefas O Agendador de Tarefas permite que você execute automaticamente tarefas de rotina em um computador escolhido. Use essa API para executar tarefas como iniciar um aplicativo, enviar uma mensagem de email ou mostrar uma caixa de mensagem. As tarefas podem ser agendadas para serem executadas em resposta a eventos ou gatilhos.

Políticas, recursos e condições

As políticas descrevem as condições de muitos recursos do sistema. Os desenvolvedores configuram políticas associando cada recurso a uma "condição" desejada para começar a usar esse recurso. As condições descrevem o estado qualitativo de um recurso e podem ser avaliadas por fatores.

A combinação de recursos e condições permite que os desenvolvedores descrevam o estado desejado do sistema para ajudar a garantir que a execução de sua carga de trabalho não afete negativamente a experiência do usuário ou o desempenho do sistema. Como o estado do sistema está sempre mudando, a assinatura dessas políticas fornece notificações de quando iniciar ou parar o trabalho com base em se a política está satisfeita (aberta) ou insatisfeita (fechada).

Modelos de política

Os modelos de política são uma maneira de os desenvolvedores configurarem suas políticas com condições de recursos predefinidas projetadas para atender às necessidades da maioria dos aplicativos. Um modelo de política é necessário ao criar uma política e é usado como ponto de partida para configurar políticas específicas para as necessidades do desenvolvedor. Um modelo de política vazio é fornecido para desenvolvedores que desejam controle total sobre sua política.

Coordenador de Atividades API e terminologia

Escolhendo a política correta do Coordenador de Atividades

Exemplo de projeto de Coordenador de Atividades