using System; namespace Cryville.Common { public class AsyncDelivery { public Action CancelSource { private get; set; } public Action Destination { private get; set; } public void Deliver(bool succeeded, T result) { if (Destination != null) Destination(succeeded, result); } public void Cancel() { if (CancelSource != null) CancelSource(); } } }