Table of Contents

Namespace DisCatSharp.Common.Utilities

Classes

AsyncEvent

ABC for AsyncEvent<TSender, TArgs>, allowing for using instances thereof without knowing the underlying instance's type parameters.

AsyncEventArgs

Contains arguments passed to an asynchronous event.

AsyncEventTimeoutException

ABC for AsyncEventHandler<TSender, TArgs>, allowing for using instances thereof without knowing the underlying instance's type parameters.

AsyncEventTimeoutException<TSender, TArgs>

Thrown whenever execution of an AsyncEventHandler<TSender, TArgs> exceeds maximum time allowed.

This is a non-fatal exception, used primarily to inform users that their code is taking too long to execute.

AsyncEvent<TSender, TArgs>

Implementation of asynchronous event. The handlers of such events are executed asynchronously, but sequentially.

AsyncExecutor

Provides a simplified way of executing asynchronous code synchronously.

AsyncManualResetEvent

Represents a thread synchronization event that, when signaled, must be reset manually. Unlike ManualResetEventSlim, this event is asynchronous.

ReflectionUtilities

Contains various utilities for use with .NET's reflection.

RuntimeInformation

Gets information about current runtime.

Enums

AsyncEventExceptionMode

Defines the behaviour for throwing exceptions from InvokeAsync(TSender, TArgs, AsyncEventExceptionMode).

Delegates

AsyncEventExceptionHandler<TSender, TArgs>

Handles any exception raised by an AsyncEvent<TSender, TArgs> or its handlers.

AsyncEventHandler<TSender, TArgs>

Handles an asynchronous event of type AsyncEvent<TSender, TArgs>. The handler will take an instance of TArgs as its arguments.