CWM*_*Man 5 .net c# windows textbox serial-port
我正在编写一个应用程序,它将以高达250kb /秒的速率显示串行/ USB数据.我正在使用.net SerialPort类并对事件做出反应.对于该软件的早期实现,我只是将传入的数据存储在WinForms中.此解决方案正常工作,直到控件中有50k - 100k行,此时应用程序陷入困境.从那以后,我尝试用WPF完成我的目标,并发现了同样的问题.我曾尝试过只保留文本框中当前可见的文本,并将其余文本存储在一个大文本中DataReceivedRichTextBoxList<string>但是这个解决方案需要大量的解决方法,并且最终被放弃了 - 我宁愿不重新发明轮子.
现在我来找你一个希望的线索 - 我愿意尝试任何事情!我应该使用自定义控件(欢迎付费和免费控制)?SQLite?虚拟化如上所述?我应该尝试轮询SerialPort而不是对事件做出反应吗?
使用线程读取数据并将其直接写入文件.让您的应用经常刷新文件中的最后x行数.甚至可以根据读者线程的通知进行刷新?
通过使用多个线程,您将保持UI响应,并通过直接写入文件,您将确保您已收集所有数据.此外,它还允许您暂停显示足够长的时间,以便在继续捕获数据的同时实际复制/粘贴所需的数据.
可能你可以实现你自己的文件阅读器类型,允许用户通过仅加载你可以在屏幕上实际显示的部分来"滚动"文件.
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |