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