Trabalhando com classes Thread Safe (Wait on Lock) no C#

Trabalhando com classes Thread Safe (Wait on Lock) no C#

Fala galera, hoje resolvi trazer um post simples mas que pode ajudar muita gente.

Existem muitos cenários em que uma classe Thread Safe podem ser usadas, é muito comum vermos este cenários quando trabalhamos com muitas threads que manipulam um mesmo documento. Um exemplo claro é a gravação de logs.

Imagine uma aplicação onde abre várias threads e cada uma delas gravam alguma informação em um txt no disco, provavelmente você teria problemas, pois enquanto uma thread está escrevendo, outras outras querem escrever no mesmo tempo, com isso é levantada uma exception.

Para resolver esse tipo de problema podemos usar uma classe muito conhecida chamada ReaderWriterLockSlim, com ela é possível avisar a thread anterior para aguardar o término do processamento, assim que a primeira thread soltar o arquivo a segunda thread entra em ação.

Veja um exemplo abaixo:

Como podemos ver a classe ReaderWriterLockSlim nos facilita resolver este problema locando o processamento para thread corrente através do método EnterWriteLock() e liberando através do método ExitWriteLock().

Bom espero que tenham gostado da dica e até a próxima!

 

Previous Aprenda testar serviços com o Postman
Next Paralelismo com C#

About author

Paulo Rogério
Paulo Rogério 144 posts

Sou apaixonado por tecnologia e adoro criar aplicações desktop, web e mobile. Adoro aprender e compartilhar conhecimento, meu hobby é ajudar as pessoas.

You might also like

Visual Studio 0 Comments

Aprenda ser mais produtivo com Sublime e Visual Studio Code

Share this on WhatsAppAprenda agilizar seu trabalho ao escrever códigos Venho compartilhar com vocês um conhecimento que adquiri a pouco tempo e que tem turbinado meu dia a dia na

Dicas 1Comments

Venha para o Slack do I Love Code e tire suas dúvidas

Share this on WhatsAppInteraja com outros desenvolvedores através do Slack E ai galera beleza? Bom atualmente muitas pessoas tentam tirar dúvidas comigo através do meu facebook, skype e até mesmo

Mobile 7 Comments

Xamarin – Como consumir uma api local que roda no IIS Express no emulador

Share this on WhatsAppAprenda a consumir uma api local direto do emulador Hoje venho trazer uma dica bem interessante para vocês, irei explicar como podemos rodar 2 projetos ao mesmo

1 Comment

  1. Muito interessante o seu tópico. Espero que mantenha a qualidade do seu material, o que é raro atualmente na web. As vezes entro aqui para aprender mais. Até postei no g+ e os meus amigos estão curtindo Ótimo trabalho!

Leave a Reply