Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中在后台绑定datagridview(或使用线程)#_C#_Winforms_Datagridview_Backgroundworker - Fatal编程技术网

C# 在c中在后台绑定datagridview(或使用线程)#

C# 在c中在后台绑定datagridview(或使用线程)#,c#,winforms,datagridview,backgroundworker,C#,Winforms,Datagridview,Backgroundworker,我有一个(类的)列表。它有几行..例如44000行,我需要将它绑定到c#中的datagridview。我不想从用户那里控制UI。即使在我使用后台工作人员时,标题栏也会显示“无响应” 简单到 dataGridView1.DataSource=条形图;其中bars是一个bindinglist,它有44000行 这一行正在阻塞所有的UI和时间 有什么想法吗?我的建议是将较小的批次与正在考虑的批次绑定在一起,或者只与即将考虑的批次绑定在一起。并在用户滚动时动态更新此绑定列表 没有一个完美的解决方案,因为

我有一个(类的)列表。它有几行..例如44000行,我需要将它绑定到c#中的datagridview。我不想从用户那里控制UI。即使在我使用后台工作人员时,标题栏也会显示“无响应”

简单到

dataGridView1.DataSource=条形图;其中bars是一个bindinglist,它有44000行

这一行正在阻塞所有的UI和时间


有什么想法吗?

我的建议是将较小的批次与正在考虑的批次绑定在一起,或者只与即将考虑的批次绑定在一起。并在用户滚动时动态更新此绑定列表


没有一个完美的解决方案,因为列表太长了,以这种或那种方式绑定整个内容将产生性能影响。

是不是在线程中预加载了
?这总是很困难,因为您必须在UI线程中更新UI,但您希望有效地暂停以处理UI事件,如不时重画。您是否尝试过将数据源设置为空的ObservableCollection,然后让BackgroundWorker向UI线程发出一系列请求,以将项目以更合适的大小添加到该集合中?请查看AutoSizeColumn属性。您能否演示如何实现后台工作程序?什么是“条形”数据类型。。。数据表、列表等。是条已预加载。仅供参考:公共类栏{public DateTime DateStamp{get;set;}公共十进制打开{get;set;}公共十进制关闭{get;set;}绑定列表栏;我在服务器上加载条并将其发送到客户端,几乎是即时的。我已经在调试中运行了该应用程序,并使用了dataGridView1.DataSource=bar行;正在接管所有的UI控件。我可以选择在虚拟模式下运行datagridview并实现它的所有功能..但是..还有其他选择吗?