通过c#中的windows服务进行串口监听

本文关键字:串口 监听 服务 中的 windows 通过 | 更新日期: 2023-09-27 18:12:48

我已经创建了一个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()
        {
        }
    }

通过c#中的windows服务进行串口监听

你得到这个错误是因为你的VisionSystemService类或ServiceBase都没有一个叫做BeginInvoke的方法。我建议调用委托