我知道这真的很模糊,但是这里...我是Event Handlers和C#Forms的新手,所以我很难解决这个问题。我已经创建了一个串行端口事件处理程序并订阅了该事件,如下所示。我在事件处理程序中“更新”某些类的实例,在其中读取串行数据并进行一些解析。它工作正常。表单数据是全局范围和持久性的,而这正是我真正需要的。
但是我想知道每次事件触发时创建类的新实例的影响。我知道C#会做所有的内务处理,而且一遍又一遍地执行此操作不会出现任何性能问题。我似乎找不到在事件处理程序之外创建可在事件处理程序中访问的类的新实例的方法。我没有显示任何表单代码,但是很简单。
// Create event handler
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) {
SerialPort sp = (SerialPort)sender;
myClass someClass = new myClass();
// do some work
}
// subscribe to the event
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);