我正在编写一个应用程序,该应用程序将通过串行端口从微控制器读取连续的数据流,然后处理它提供的信息。我试图通过SerialPort.BaseStream.ReadAsync
读取所有数据,然后将该数据存储到全局缓冲区中,以便可以处理接收到的数据。但是,我不确定应该为缓冲区使用哪种数据结构。我已经看过一些关于循环缓冲区的东西,看起来它们可以工作,但是似乎很难编程。然后,我想到了使用链接列表:我认为它可能能够工作,因为我可以继续向列表的末尾添加新数据,并具有一个连续处理数据的功能,以检查缓冲区中的数据并读取从前面的数据,然后将其删除。但是,如果由于某些原因我处理数据太慢而导致数据过大,我可能不得不通过从前端删除数据来保持大小。此外,删除第一批项目时是否必须从内存中删除项目有任何问题?我想,从某种程度上来说,我只是想从链接列表中创建一个循环缓冲区,而且我不确定这是否是解决此问题的好方法。如果你们有什么建议,我将不胜感激!