天天看點

C#委托幫助類

/// <summary>
    /// 委托幫助類
    /// </summary>
    public class DelegateHelper
    {
        /// <summary>
        /// 異步執行方法
        /// </summary>
        /// <param name="firstFunc">首先執行的方法</param>
        /// <param name="next">接下來執行的方法</param>
        public static void RunAsync(Action firstFunc, Action next)
        {
            Task firstTask = new Task(() =>
            {
                firstFunc();
            });
            firstTask.Start();
            firstTask.ContinueWith(x => next);
        }

        /// <summary>
        /// 異步執行方法
        /// </summary>
        /// <param name="firstFunc">首先執行的方法</param>
        /// <param name="next">接下來執行的方法</param>
        public static void RunAsync(Func<object> firstFunc, Action<object> next)
        {
            Task<object> firstTask = new Task<object>(() =>
            {
                return firstFunc();
            });
            firstTask.Start();
            firstTask.ContinueWith(x => next(x.Result));
        }
    }