using System;
using System.Threading;
using System.Threading.Tasks;
namespace ComposableAsync
{
///
/// Simplified version of that can be converted
/// to a using the ToFullDispatcher extension method
///
public interface IBasicDispatcher
{
///
/// Clone dispatcher
///
///
IBasicDispatcher Clone();
///
/// Enqueue the function and return a task corresponding
/// to the execution of the task
/// ///
///
///
///
///
Task Enqueue(Func action, CancellationToken cancellationToken);
///
/// Enqueue the action and return a task corresponding
/// to the execution of the task
///
///
///
///
Task Enqueue(Action action, CancellationToken cancellationToken);
///
/// Enqueue the task and return a task corresponding
/// to the execution of the task
///
///
///
///
Task Enqueue(Func action, CancellationToken cancellationToken);
///
/// Enqueue the task and return a task corresponding
/// to the execution of the original task
///
///
///
///
///
Task Enqueue(Func> action, CancellationToken cancellationToken);
}
}