首页新闻找找看学习计划

请教一个事件问题

0
悬赏园豆:15 [待解决问题]

请问下我在定时器里监控一个设备上的数据,当这个设备的一个值为0的时候
触发一个提示框,等我处理完后,继续监视。
请问下WINFROM 里的事件回调 怎么写啊

男人要爽的主页 男人要爽 | 初学一级 | 园豆:2
提问于:2019-06-12 17:55
< >
分享
所有回答(2)
0

我写了一个简易的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>

BUTTERAPPLE | 园豆:2816 (老鸟四级) | 2019-06-12 20:00
1

public event Action OnDeviceValueZero;

timer_loop()=> if(getDeviceValue()==0)OnDeviceValueZero?.Invoke();

楼上写法太过复杂。

花飘水流兮 | 园豆:8450 (大侠五级) | 2019-06-12 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册