C#在serialport_datareceived Event中运行一个方法

时间:2013-11-04 13:02:52

标签: c# methods invoke

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

public void Draw(byte[] data);

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

这不行。它给出了一个错误,说“预期方法名称”。我该怎么办?

1 个答案:

答案 0 :(得分:1)

尝试

public delegate void Draw(byte[] data);

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

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

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

public void DrawingAudioData(byte[] data) {

有关事件处理程序here的更多信息。

有关委托和调用方法here的更多信息。