1 //------------------------------------------------------------------------------ 2 // <copyright file="EventHandlerTaskAsyncHelper.cs" company="Microsoft"> 3 // Copyright (c) Microsoft Corporation. All rights reserved. 4 // </copyright> 5 //------------------------------------------------------------------------------ 6 7 /* 8 * Assists in converting an EventHandler written using the Task Asynchronous Pattern to a Begin/End method pair. 9 * 10 * Copyright (c) 2010 Microsoft Corporation 11 */ 12 13 namespace System.Web { 14 using System; 15 using System.Threading; 16 using System.Threading.Tasks; 17 18 public sealed class EventHandlerTaskAsyncHelper { 19 EventHandlerTaskAsyncHelper(TaskEventHandler handler)20 public EventHandlerTaskAsyncHelper(TaskEventHandler handler) { 21 if (handler == null) { 22 throw new ArgumentNullException("handler"); 23 } 24 25 BeginEventHandler = (sender, e, cb, extraData) => TaskAsyncHelper.BeginTask(() => handler(sender, e), cb, extraData); 26 EndEventHandler = TaskAsyncHelper.EndTask; 27 } 28 29 public BeginEventHandler BeginEventHandler { 30 get; 31 private set; 32 } 33 34 public EndEventHandler EndEventHandler { 35 get; 36 private set; 37 } 38 39 } 40 } 41