我有一个存储从usb收集的数据的类。我经常使用背景线程读取数据,睡眠10ms,然后重复。如何在后台更新datagridview
使用List(of T)类将数据绑定到datagridview _mydatagrid中。我不使用BindingList(Of T),因为它会非常频繁地更新数据网格,并会消耗大量的CPU资源。
要更新数据网格中,我使用两种机制:
如果数据的大小增长:
_mydatagrid.DataSource =无
_mydatagrid.DataSource =(的实例我的存储数据类)
如果数据大小已达到我要存储的限制:
我打算_mydatagrid.Invalidate()
的代码工作正常,很少的CPU使用率。但有一件令我困扰的事情是,当datagridview更新时,它倾向于将注意力集中到它。因此,如果我打开另一个应用程序,尤其是具有多个窗体窗体的应用程序,datagridview会与另一个应用程序争斗,以便在更新时关注它。因此它弹出很多,并且看起来很有侵略性,而且不是用户友好的。
有没有办法更新datagridview静默。我试着在背景中做到这一点,但我注意到,即使如此,当调用_mydatagridview.Invalidate()
或_mydatagridview.Refresh()
时,无论如何,它都会获得焦点。
有什么建议吗?
你能详细说一下“获取焦点”吗?焦点实际上是否会从其他控件移动到datagridview或datagridview激活的表单中,还是仅仅因为它闪烁而暗示它会吸引眼球? – AaronTheRabbit