c#winform 多线程绑定datagridview会造成假死,滚动条无法滚动,用委托怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform 多线程绑定datagridview会造成假死,滚动条无法滚动,用委托怎么做相关的知识,希望对你有一定的参考价值。

// this是窗体,可以改
// 必须在另一个线程执行,在主线程执行会死机
this.Invoke(new Action(delegate
//绑定datagridview代码
));

参考技术A 把后台执行时间长的代码放到线程中做,当数据都查出来以后,绑定的时候,再invoke来绑定追答

厉害啊,带我一脚可好

参考技术B 楼上说的
this.Invoke(new Action(delegate
//绑定datagridview代码
));
这个很好用追问

这个delegate委托用不用先创建一个 还是直接就这样

追答

直接就这样去用 这样是匿名委托的写法

本回答被提问者和网友采纳

C# Winform 多线程 SOCKET 文件上传,下载

一个S, 服务器端
N个C,客户端

上传
S随时监听端口,C发来上传文件请求后开始接收文件,如果网络中断,下次C再连接的时候,可以支持上一次文件断点续传

下载
S随时监听端口,C发来下载文件请求后开始发送文件,如果网络中断,下次C再连接的时候,可以支持上一次文件断点续传

参考技术A 这可是很麻烦的,自己到网上找吧 参考技术B 文件数据流传输方法,自己定义握手协议就可以实现,底层SOCKET的代码网上多的是本回答被提问者和网友采纳 参考技术C 这个很麻烦的网上找一下教程吧。 参考技术D 服务器保存上传的每个(未完成)文件信息(如:已上传的流的位置)及特定的文件标识,客户端保存未完成(下载)的文件信息及特定标识;每次上传或下载文件时将相关信息写入协议中,传送到对方,对方解析后再进行数据传输。
如果客户端较多的话,可以考虑客户端先连接到服务器,再由服务器进行反连接。这样不会阻塞服务器的监听。

以上是关于c#winform 多线程绑定datagridview会造成假死,滚动条无法滚动,用委托怎么做的主要内容,如果未能解决你的问题,请参考以下文章

C#winform使用了多线程,有时候程序再运行中直接就退出了!

C# Winform 多线程 SOCKET 文件上传,下载

C#WinForm在新线程中动态创建控件时,gif图动不动

如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?

我用C# winform多线程,窗口就假死,等到线程全部完成了才可以点击。请问要怎么才可以让窗口不假死。

WINFORM中加入WPF控件并绑定数据源实现跨线程自动更新