implementando incêndio eficiente em C#
C# oferece várias maneiras de criar métodos "incêndios e esquecer"-funções que executam sem bloquear o chamador. Enquanto WCF's [OperationCract (isoneway = true)]
atributo era uma abordagem comum, alternativas mais simples fornecem melhor desempenho.
Método não de bloqueio simples chamadas
Essas opções oferecem execução não bloqueadora rápida e eficiente:
threadpool.queueUserworkItem
: Isso adiciona um método ao pool de threads, executando -o em um thread de fundo. ThreadPool.QueueUserWorkItem(o => FireAway());
task.run
: introduzido no .net 4.0, task.run
cria e agenda uma tarefa no pool de threads. Task.Run(() => FireAway());
considerações importantes para métodos não bloqueadores
Lembre-se, o não bloqueio não garante a conclusão. O método chamado pode não terminar antes da saída do programa. Se o sucesso do método for fundamental para a funcionalidade do seu aplicativo, você precisará de mecanismos adicionais para garantir a conclusão. Isso pode envolver bloqueio de threads ou manuseio de conclusão dedicado, especialmente em ambientes como asp.net, onde o término prematuro pode ser problemático.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3