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.
A estrutura SpinLock é uma primitiva de sincronização de nível inferior com exclusão mútua que gira enquanto aguarda adquirir um bloqueio. Em computadores multicore, quando os tempos de espera devem ser curtos e quando a contenção é mínima, SpinLock pode ter um desempenho melhor do que outros tipos de bloqueios. No entanto, recomendamos usar o SpinLock somente quando você determinar pela criação de perfil que o método System.Threading.Monitor ou os métodos Interlocked estejam causando lentidão significativa no desempenho do seu programa.
SpinLock pode resultar no fatiamento de tempo do thread mesmo que ainda não tenha adquirido o bloqueio. Isso é feito para evitar a inversão de prioridade de thread e para habilitar o progresso do coletor de lixo. Ao usar um SpinLock, nenhum thread deverá manter o bloqueio por mais do que um breve intervalo de tempo ou fechar enquanto mantém o bloqueio.
Como SpinLock é um tipo de valor, você deve passá-lo explicitamente por referência se você pretende que as duas cópias se refiram ao mesmo bloqueio.
Para obter mais informações sobre como usar esse tipo, consulte System.Threading.SpinLock. Para obter um exemplo, consulte Como usar o SpinLock para sincronização de Low-Level.
SpinLock oferece suporte a um modo de acompanhamento de -thread que pode ser usado na fase de desenvolvimento para ajudar a acompanhar o thread que está mantendo o bloqueio em um momento específico. O modo de acompanhamento de threads é muito útil para depuração, mas recomendamos desativá-lo na versão de lançamento do programa, pois ele pode diminuir o desempenho. Para obter mais informações, consulte Como habilitar o modo Thread-Tracking no SpinLock.