| File: Dispatching\IDispatcher.cs | Web Access |
| Project: src\src\Core\src\Core.csproj (Microsoft.Maui) |
using System; namespace Microsoft.Maui.Dispatching { /// <summary> /// Provides the core event message dispatcher. Instances of this type are responsible for processing the window messages and dispatching the events to the client. /// </summary> public interface IDispatcher { /// <summary> /// Schedules the provided action on the UI thread from a worker thread. /// </summary> /// <param name="action">The <see cref="Action"/> to be scheduled for processing on the UI thread.</param> /// <returns><see langword="true"/> when the action has been dispatched successfully, otherwise <see langword="false"/>.</returns> bool Dispatch(Action action); /// <summary> /// Schedules the provided action on the UI thread from a worker thread, taking into account the provided delay. /// </summary> /// <param name="delay">The delay taken into account before <paramref name="action"/> is dispatched.</param> /// <param name="action">The <see cref="Action"/> to be scheduled for processing on the UI thread.</param> /// <returns><see langword="true"/> when the action has been dispatched successfully, otherwise <see langword="false"/>.</returns> bool DispatchDelayed(TimeSpan delay, Action action); /// <summary> /// Creates a new instance of an <see cref="IDispatcherTimer"/> object associated with this dispatcher. /// </summary> /// <returns></returns> IDispatcherTimer CreateTimer(); /// <summary> /// Gets a value that indicates whether dispatching is required for this action. /// </summary> bool IsDispatchRequired { get; } } /// <summary> /// Provides a timer that is integrated into the <see cref="Dispatcher"/> queue, which is processed at a specified interval of time. /// </summary> public interface IDispatcherTimer { /// <summary> /// Gets or sets the amount of time between timer ticks. /// </summary> TimeSpan Interval { get; set; } /// <summary> /// Gets or sets whether the timer should repeat. /// </summary> /// <remarks>When set the <see langword="false"/>, the timer will run only once.</remarks> bool IsRepeating { get; set; } /// <summary> /// Gets a value that indicates whether the timer is running. /// </summary> bool IsRunning { get; } /// <summary> /// Occurs when the timer interval has elapsed. /// </summary> event EventHandler Tick; /// <summary> /// Starts the timer. /// </summary> void Start(); /// <summary> /// Stops the timer. /// </summary> void Stop(); } }