Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A SpinLock struktúra egy alacsony szintű, kölcsönös kizárású szinkronizálási primitív, amely várakozás közben pörög a zárolás megszerzésére. Többmagos számítógépek esetén, ha a várakozási idő várhatóan rövid, és a versengés minimális, SpinLock jobban teljesít a más zárolási típusoknál. Javasoljuk azonban, hogy csak akkor használja SpinLock , ha profilkészítéssel állapítja meg, hogy a System.Threading.Monitor módszer vagy a Interlocked metódusok jelentősen lassítják a program teljesítményét.
SpinLock akkor is átengedheti a szál időszeletét, ha még nem szerezte meg a zárolást. Ezzel elkerülheti a szálprioritású inverziót, és lehetővé teszi a szemétgyűjtő számára a haladást. Amikor használ egy SpinLock, győződjön meg arról, hogy egyetlen szál sem tartja a zárolást hosszabb ideig, mint egy nagyon rövid időtartam, és hogy egyetlen szál sem blokkolódhat, amíg tartja a zárat.
Mivel a SpinLock értéktípus, kifejezetten hivatkozva kell átadnia, ha a két példány ugyanarra a zárolásra kíván hivatkozni.
Ennek a típusnak a használatáról további információt a következő témakörben talál System.Threading.SpinLock. Példa : Útmutató: A SpinLock használata Low-Level szinkronizáláshoz.
SpinLock támogatja a szál-követési módot, amelyet a fejlesztési fázisban használhat a zárolást egy adott időpontban tartó szál nyomon követéséhez. A szálkövetési mód nagyon hasznos a hibakereséshez, de azt javasoljuk, hogy kapcsolja ki a program kiadási verziójában, mert ez lelassíthatja a teljesítményt. További információért lásd: Hogyan: Engedélyezze a Thread-Tracking módot a SpinLockban.