zoukankan      html  css  js  c++  java
  • 托管改变属性的值InvokeRequired

    由于线程安全问题,在多线程编程下更改一个控件的属性时,往往需要用托管来更改属性的值.下面是一个通用的托管,用反射来对属性进行赋值.
    
    public delegate void SetValueCallBack(Control control, string property, object value);
    public static void SetValue(Control control, string property, object value)
    ...{
         if (control.InvokeRequired)
             control.Invoke(new SetValueCallBack(SetValue), new object[] ...{ control, property, value });
         else
         ...{
             PropertyInfo p = control.GetType().GetProperty(property);
             p.SetValue(control, Common.Data.To(value, p.PropertyType), null);
             Application.DoEvents();
         }
    }

     this.Invoke((EventHandler)delegate{this.Text = "test";});

  • 相关阅读:
    python中的__init__
    python中的单例模式
    python中闭包和装饰器
    sql多表查询
    configurationChanges
    excludeFromRecents标签
    activity-alias
    meta-data
    launchMode
    Apache ant 配置
  • 原文地址:https://www.cnblogs.com/liuxinls/p/2880386.html
Copyright © 2011-2022 走看看