0

我想在 serialport_DataReceived 事件中运行一个方法。

public void Draw(byte[] data);

private void myPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
       this.Invoke(new EventHandler(DrawingAudioData(data)));
}

这是行不通的。它给出了一个错误,说“预期的方法名称”。我能做些什么?

4

1 回答 1

1

尝试

public delegate void Draw(byte[] data);

private void myPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    this.Invoke(new Draw(DrawingAudioData), data);
}

在我看来,传递给 Invoke 的 DrawingAudioData 没有 EventHandler 签名。您还应该将方法名称传递给委托构造函数。

DrawingAudioData 方法应具有与 Draw 委托匹配的签名:

public void DrawingAudioData(byte[] data) {

有关事件处理程序的更多信息在这里

有关 Delegate 和 Invoke 方法的更多信息,请点击此处

于 2013-11-04T13:25:28.443 回答