AOP pode ser usado para compartilhar dados entre diferentes threads em execução no processo de candidatura?

StackOverflow https://stackoverflow.com/questions/1431463

  •  07-07-2019
  •  | 
  •  

Pergunta

UPDATE: Eu não estou claro em que AOP contexto deve ser usado? Como podemos utilizar AOP para fazer login propósito, segurança (autenticação), por favor sugerir alguns outros cenários onde podemos tirar vantagem da AOP.

Can AOP ser usado para compartilhar dados entre diferentes threads em execução no processo de candidatura?

Foi útil?

Solução

Aspecto programação orientada é ideal quando você precisa reduzir a funcionalidade "transversal" dentro de sua base de código. O que isto significa é que você tem código comum (logging, segurança) que as classes precisam de implementar, mas você não pode abstrair essa funcionalidade em classes de base.

Assim, AOP está realmente tomando pequenos esses pedaços de funcionalidade e integrá-las, em tempo de execução ou tempo de compilação, em seu código onde a funcionalidade "transversal" está presente.

Resources

Atualmente, AOP não é construído em C #, mas lá as seguintes estruturas podem construir AOP:

AOP para dados de segmento

Geralmente, usando AOP para compartilhar dados entre threads não é o caminho a percorrer. Existem outras técnicas disponíveis para os desenvolvedores de fazer isso:

  • [ThreadStaticAttribute] Acrescentar este atributo para campos de ditar ao .NET runtime que o seguinte campo será exclusivo para vários segmentos

  • Sincronização (técnica mais comum) Use Mutexes, Semaphores, fechaduras ReaderWriter e EventWaitHandles para acesso de sincronização de dados locais ou globais de vários segmentos. Em C #, a declaração lock é açúcar sintático para a classe Monitor, que pode ser usado para acesso "bloqueio" para um objeto a partir de um único segmento.

Outras dicas

Eu gosto de pensar de AOP como behind-the-scenes geração inteligente de código (tempo de compilação) / execução (run-time), assim você pode basicamente fazer quase qualquer coisa. Tem todas as vantagens (e mais) de geração de código tradicional sem ela desvantagens (por exemplo, facilidade de manutenção).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top