Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve as práticas recomendadas para trabalhar com o pool de threads.
O que fazer
Use o pool de threads para fazer um trabalho paralelo em seu aplicativo.
Use itens de trabalho para realizar tarefas estendidas sem bloquear o thread da interface do usuário.
Crie itens de trabalho de curta duração e independentes. Os itens de trabalho são executados de forma assíncrona e podem ser enviados para o pool em qualquer ordem da fila.
Enviar atualizações para o thread da interface do usuário. Em aplicativos WinUI 3, use
DispatcherQueue.TryEnqueuedeMicrosoft.UI.Dispatching.DispatcherQueue.Use ThreadPoolTimer.CreateTimer em vez da função Sleep .
Use o pool de threads em vez de criar seu próprio sistema de gerenciamento de threads. O pool de threads funciona no nível do sistema operacional, com recursos avançados, e é otimizado para se ajustar dinamicamente de acordo com os recursos do dispositivo e a atividade dentro do processo e em todo o sistema.
No C++, verifique se os delegados de item de trabalho usam o modelo de threading ágil (os delegados do C++ são ágeis por padrão).
Use itens de trabalho pré-alocados quando não for possível tolerar uma falha de alocação de recursos no momento do uso.
O que não fazer
Não crie temporizadores periódicos com um valor de período de <1 milissegundo (incluindo 0). Isso fará com que o item de trabalho se comporte como um temporizador de disparo único.
Não envie itens de trabalho periódicos que levam mais tempo para serem concluídos do que o tempo especificado no parâmetro de período .
Não tente fazer atualizações da interface do usuário (exceto toasts e notificações) a partir de um item de trabalho despachado por uma tarefa em segundo plano. Em vez disso, use manipuladores de progresso e conclusão da tarefa em segundo plano - por exemplo, IBackgroundTaskInstance.Progress.
Ao usar manipuladores de item de trabalho que usam a palavra-chave assíncrona , não suponha que todo o código no manipulador tenha sido executado quando o estado completo tiver sido definido no item de trabalho. O item de trabalho do pool de threads pode ser marcado como concluído antes de todo o código no manipulador ter sido executado. O código após uma palavra-chave await dentro do manipulador pode ser executado depois que o item de trabalho tiver sido definido como o estado completo.
Não tente executar um item de trabalho pré-alocado mais de uma vez sem reinicializá-lo. Criar um item de trabalho periódico
Tópicos relacionados:
Windows developer