我已经创建了一个windows服务来监听串行端口输入,下面是我的代码,但我得到一个错误,如缺少汇编,我谷歌它,但很少有文章说要添加System.WIndows.Forms
命名空间,甚至我补充说,我得到相同的错误
错误1 'VisionSystemService. net '。"VisionSystemService"不包含定义'BeginInvoke',没有扩展方法'BeginInvoke'接受类型的第一个参数"VisionSystemService。可以找到"VisionSystemService"缺少using指令或程序集引用?)
public partial class VisionSystemService : ServiceBase
{
SerialPort _SerialPort;
private delegate void SetTextDeleg(string text);
public VisionSystemService()
{
InitializeComponent();
_SerialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
_SerialPort.Handshake = Handshake.None;
_SerialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_SerialPort.ReadTimeout = 500;
_SerialPort.WriteTimeout = 500;
_SerialPort.Open();
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);
string data = _SerialPort.ReadExisting();
this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { data });
}
protected override void OnStart(string[] args)
{
}
private void si_DataReceived(string data)
{
}
protected override void OnStop()
{
}
}
你得到这个错误是因为你的VisionSystemService类或ServiceBase都没有一个叫做BeginInvoke的方法。我建议调用委托