C# Класс Microsoft.Common.Core.Threading.AsyncReaderWriterLock.Queue

Показать файл Открыть проект

Открытые методы

Метод Описание
AddExclusiveReader ( ExclusiveReaderLockSource item, bool &isAddedAfterWriterOrExclusiveReader ) : void

Adds a reader from exclusive reader lock

1. _wTail erlTail ↓ ↓ R−→R−→R ―► R−→R−→R−→E ↑ ↑ _tail _tail 2. _wTail _wTail erlTail ↓ ↓ ↓ R−→R−→W ―► R−→R−→W−→E ↑ ↑ _tail _tail 3. _wTail _wTail erlTail ↓ ↓ ↓ R−→W−→W−→R−→R ―► R−→W−→W−→R−→R−→E ↑ ↑ _tail _tail 4. _wTail _tail _wTail _tail ↓ ↓ ↓ ↓ R−→W−→W−→E−→R ―► R−→W−→W−→E−→E−→R ↑ ↑ erlTail erlTail

AddReader ( LockSource item, bool &isAddedAfterWriter ) : void

Adds a reader item

1. R−→R−→R ―► R−→R−→R−→R ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→R ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→R−→R ↑ ↑ _tail _tail

AddWriter ( LockSource item, bool &isFirstWriter ) : void

Adds a writer item

1. _wTail ↓ R−→R−→R ―► R−→R−→R−→W ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→W ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→W−→R ↑ ↑ _tail _tail

Remove ( LockSource item ) : LockSource[]

Приватные методы

Метод Описание
FilterAndCopyToArray ( LockSource start ) : LockSource[]
FindFirstExclusiveReader ( ExclusiveReaderLock erLock ) : LockSource[]
Link ( LockSource previous, LockSource next ) : void
ReaderCanBeReleased ( LockSource source ) : bool
Unlink ( LockSource item ) : void
UpdateTail ( LockSource item ) : void

Описание методов

AddExclusiveReader() публичный Метод

Adds a reader from exclusive reader lock
1. _wTail erlTail ↓ ↓ R−→R−→R ―► R−→R−→R−→E ↑ ↑ _tail _tail 2. _wTail _wTail erlTail ↓ ↓ ↓ R−→R−→W ―► R−→R−→W−→E ↑ ↑ _tail _tail 3. _wTail _wTail erlTail ↓ ↓ ↓ R−→W−→W−→R−→R ―► R−→W−→W−→R−→R−→E ↑ ↑ _tail _tail 4. _wTail _tail _wTail _tail ↓ ↓ ↓ ↓ R−→W−→W−→E−→R ―► R−→W−→W−→E−→E−→R ↑ ↑ erlTail erlTail
public AddExclusiveReader ( ExclusiveReaderLockSource item, bool &isAddedAfterWriterOrExclusiveReader ) : void
item ExclusiveReaderLockSource
isAddedAfterWriterOrExclusiveReader bool
Результат void

AddReader() публичный Метод

Adds a reader item
1. R−→R−→R ―► R−→R−→R−→R ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→R ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→R−→R ↑ ↑ _tail _tail
public AddReader ( LockSource item, bool &isAddedAfterWriter ) : void
item LockSource
isAddedAfterWriter bool
Результат void

AddWriter() публичный Метод

Adds a writer item
1. _wTail ↓ R−→R−→R ―► R−→R−→R−→W ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→W ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→W−→R ↑ ↑ _tail _tail
public AddWriter ( LockSource item, bool &isFirstWriter ) : void
item LockSource
isFirstWriter bool
Результат void

Remove() публичный Метод

public Remove ( LockSource item ) : LockSource[]
item LockSource
Результат LockSource[]