public static void CallBackLargeTask(IAsyncResult asyncResult)
        {
            AsynchDel doLargeTask = (AsynchDel)asyncResult.AsyncState;
            string    message     = doLargeTask.EndInvoke(asyncResult);

            Console.WriteLine(message);
        }
        public static void AsynchDelegateMain()
        {
            AsynchDel delegateObj = LargeTask;

            delegateObj.BeginInvoke(new AsyncCallback(CallBackLargeTask), delegateObj);
            Console.WriteLine("New task is started!");
            Console.Read();
        }