请问下我在定时器里监控一个设备上的数据,当这个设备的一个值为0的时候
触发一个提示框,等我处理完后,继续监视。
请问下WINFROM 里的事件回调 怎么写啊
我写了一个简易的DEMO,逻辑是这样的,您看下满不满足您的需求。
定义一个 通知 的委托:假设定义如下:
private delegate void NotifyMe(string args);
然后我们去实现一个满足这样的委托的 function
private void NotifyMeRobert(string args)
{
Console.WriteLine(args + "1400874454654");
label1.Text = args + "10086";
}
再 定义一个通知事件 private event NotifyMe notify;
并在 Form 加载时订阅
public Form1()
{
InitializeComponent();
notify += NotifyMeRobert;
}
最后实在你处理逻辑的地方 raise 这个事件
private void button1_Click(object sender, EventArgs e)
{
if (DateTime.Now.Second % 2 == 0)
{
notify(DateTime.Now.Second.ToString());
}
}
PS:上述代码纯属逻辑演示。
PS:推荐使用类库中的委托 Action<T> 和 Func<T1,T2,TResult>
public event Action OnDeviceValueZero;
timer_loop()=> if(getDeviceValue()==0)OnDeviceValueZero?.Invoke();
楼上写法太过复杂。