实现一个对象:主动向上触发事件(报告信息)
类实现代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace WindowsFormsApplication1
{
public delegate void HartHandler();
class Class1
{
//事件
public event HartHandler HartEvent;
//构造函数
public Class1()
{
Thread th = new Thread(hart);
th.Start();
}
private void hart()
{
while (true)
{
Thread.Sleep(1000);
//触发事件
HartEvent();
}
}
}
}
调用该类
实现代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Class1 abc = new Class1();
abc.HartEvent += new HartHandler(abc_HartEvent);
}
void abc_HartEvent()
{
System.Diagnostics.Debug.WriteLine("hart event -> " + DateTime.Now.ToString("HH:mm:ss:ff"));
//throw new NotImplementedException();
}
}
}
注意这里的实现只是输出调试信息,没有显示到界面上,为的是简化例程,同时也没有通过心跳传递参数,如果想传递参数需要在类内部定义事件时增加参数即可。
软件界面
注意底部的输出信息,
同时该实验关闭窗体是没有完全退出程序,(主要是简化代码,突出主题)
调试环境 vs2010
anlog
2021年9月24日
特此记录以防忘记