/// <summary> /// <see cref="AsyncAction{T1}"/>以外の形式でイベントを購読する。 /// </summary> public static IDisposable Subscribe <T>(this IAsyncEvent <T> e, Action <T> handler) => e.Subscribe((_1, args) => { handler(args); return(Task.CompletedTask); });
/// <summary> /// キャンセルされるまでの間イベントを購読する。 /// </summary> public static void SubscribeUntil <T>(this IAsyncEvent <T> e, CancellationToken ct, Func <Task> handler) { var d = e.Subscribe(handler); ct.Register(d.Dispose); }
/// <summary> /// <see cref="AsyncAction{T1}"/>以外の形式でイベントを購読する。 /// </summary> public static IDisposable Subscribe <T>(this IAsyncEvent <T> e, Func <Task> handler) => e.Subscribe((_1, _2) => handler());