Show / Hide Table of Contents

# Namespace Microsoft.SqlTools.ServiceLayer.Utility

### Classes

#### AsyncContext

Simplifies the setup of a SynchronizationContext for the use of async calls in the current thread.

#### AsyncContextThread

Provides a simplified interface for creating a new thread and establishing an AsyncContext in it.

#### AsyncLock

Provides a simple wrapper over a SemaphoreSlim to allow synchronization locking inside of async calls. Cannot be used recursively.

#### AsyncQueue<T>

Provides a synchronized queue which can be used from within async operations. This is primarily used for producer/consumer scenarios.

#### Logger

Provides a simple logging interface. May be replaced with a more robust solution at a later date.

#### LongList<T>

Collection class that permits storage of over `int.MaxValue` items. This is performed by using a 2D list of lists. The internal lists are only initialized as necessary. This collection implements IEnumerable to make it easier to run LINQ queries against it.

#### LongList<T>.LongListEnumerator<TEt>

#### TextUtilities

#### ThreadSynchronizationContext

Provides a SynchronizationContext implementation that can be used in console applications or any thread which doesn't have its own SynchronizationContext.

#### Validate

Provides common validation methods to simplify method parameter checks.

### Enums

#### LogLevel

Defines the level indicators for log messages.