C#中设置监控值,当监控值字段数据发生改变时,某一个正在执行的循环重新循环

大概就是标题描述的,比如我有一个While循环,当我发现某个字段的值发生改变时,Whlie循环执行Contiue

参考一下,定义一个变量value

public class Program
{
    //需要监控的字段
    private int myValue;
 
    //属性设置,此处调用了事件触发函数
    public int MyValue
    {
        get { return myValue; }
        set
        {
            //如果变量改变则调用事件触发函数
            if (value!=myValue)
            {
                WhenMyValueChange();
            }
            myValue = value; 
        }
    }
 
    //定义的委托
    public delegate void MyValueChanged(object sender, EventArgs e);
    //与委托相关联的事件
    public event MyValueChanged OnMyValueChanged;
 
    //构造函数初始化初值并绑定一个事件处理函数
    public Program()
    {
        myValue = 0;
        OnMyValueChanged += new MyValueChanged(afterMyValueChanged);
 
    }
 
    //事件处理函数,在这里添加变量改变之后的操作
    private void afterMyValueChanged(object sender, EventArgs e)
    {
        //do something
    }
 
    //事件触发函数
    private void WhenMyValueChange()
    {
        if (OnMyValueChanged != null)
        {
            OnMyValueChanged(this, null);
        }
    }
}