INotifyPropertyChanged更新UI挂起​​,同时持久运行

时间:2014-09-10 12:24:14

标签: winforms inotifypropertychanged

我制作了一个示例,尝试在长时间运行运行时动态更新我的UI,但UI在运行时会挂起。

这是我的实体类:

public class ClsTest : INotifyPropertyChanged
{
    private string _text;

    public string Text
    {
        get { return _text; }
        set
        {

            if (string.IsNullOrEmpty(value) && value == _text)
                return;
            _text = value;
            NotifyPropertyChanged(() => Text);
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged<T>(Expression<Func<T>> property)
    {
        if (PropertyChanged == null)
            return;

        var memberExpression = property.Body as MemberExpression;

        if (memberExpression == null)
            return;

        PropertyChanged.Invoke(this, new PropertyChangedEventArgs(memberExpression.Member.Name));
    }

}

这是我的主要form_load中的绑定代码

ClsTest x = new ClsTest();
x.Text = "yes";
txtValue.DataBindings.Add("Text", x, "Text", false, DataSourceUpdateMode.Never);

当我在按钮点击方法中运行以下代码时,它会挂起:

 for (int i = 0; i < 20; i++)
        {
            x.Text = i.ToString();

            System.Threading.Thread.Sleep(1000);
        }

如何解决此问题?

0 个答案:

没有答案