Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Struktura SpinLock je nízkoúrovňový synchronizační primitiv pro vzájemné vyloučení, který se točí, zatímco čeká na získání zámku. Na počítačích s více jádry, když se očekává, že doba čekání bude krátká a konkurence je minimální, SpinLock může fungovat lépe než jiné druhy zámků. Doporučujeme však použít SpinLock pouze tehdy, když určíte profilací, že System.Threading.Monitor metoda nebo Interlocked metody výrazně zpomalují výkon programu.
SpinLock může přinést časový řez vlákna, i když ještě nebyl získán zámek. Tím se vyhnete inverzi priority vlákna a umožníte uvolňovači paměti pokračovat. Pokud používáte SpinLock, ujistěte se, že žádné vlákno nemůže držet zámek pro více než velmi krátký časový rozsah a že žádné vlákno nemůže blokovat, zatímco drží zámek.
Protože SpinLock je hodnotový typ, musíte jej explicitně předat odkazem, pokud chcete, aby dvě kopie odkazovaly na stejný zámek.
Další informace o použití tohoto typu naleznete v tématu System.Threading.SpinLock. Pro příklad, viz Jak použít SpinLock pro synchronizaci Low-Level.
SpinLockpodporuje režimsledování-, který můžete použít během vývojové fáze, aby bylo možné sledovat vlákno, které drží zámek v určitém okamžiku. Režim sledování vláken je velmi užitečný pro ladění, ale doporučujeme ho vypnout ve verzi programu, protože může zpomalit výkon. Další informace naleznete v tématu Postupy: Povolení režimu Thread-Tracking ve spinLocku.