扩展方法

    /// <summary>
    /// 扩展方法必须在非泛型静态类中定义
    /// </summary>
    static class MyExtension
    {
 
        /// <summary>
        /// 跨线程操作控件,在控件上执行委托。调用方法示例:button1.MyInvoke(() => { button1.Text = ""; });
        /// </summary>
        /// <param name="ctl">控件</param>
        /// <param name="dlg">委托</param>
        public static void MyInvoke(this Control ctl, ThreadStart dlg)
        {
            if (dlg == null) return;
            if (!ctl.IsHandleCreated || ctl.IsDisposed || ctl.Disposing) return;
            if (ctl.InvokeRequired)
                ctl.Invoke(dlg, null);
            else
                dlg();
        }
    }

 

posted on 2019-02-17 20:43  武胜-阿伟  阅读(99)  评论(0编辑  收藏  举报