关于c# winform 中 使用多线程实现后台定时刷新 datagridview 数据

本文介绍了C#新手在开发中遇到的一个问题,即在WinForm应用中使用多线程后台定时刷新DataGridView数据时,出现界面显示大红叉和报错的情况。通过分析和调整,成功解决了这个问题,实现了后台查询数据并平滑更新界面,避免了程序假死,提升了用户体验。文中分享了解决方案,欢迎交流。
摘要由CSDN通过智能技术生成

背景

本人c#新手,最近公司要求做的一个程序,需要利用后台定时查询数据绑定到datagridview上,要求程序不能出现假死,给人友好的体验,于是想到利用创建另一个线程用于查询数据然后再把数据显示在datagridview上。程序完成的时候,在本机上代码调试也没出问题,很完美,但是到了实际的运用的时候,datagridview的界面出了问题,没有数据并且显示一个大红叉,并且还报错。之前还以为是电脑环境的问题,到后来才找到原因,是多线程使用不当的问题。下面是小弟的解决方法,目前已经没有发现这个情况。如果有人发现此方法不适用或者有更好的方法,请告知,谢谢!欢迎各位大神指导!

实现代码


        /// <summary>
        /// 查找数据(查询调用函数)
        /// </summary>
        private void searchData()
        {  

            //开始查询数据
            Thread th = new Thread(new ThreadStart(StartSearchData));
            th.IsBackground = true;//设置为后台线程,否则即使主程序界面关闭了,程序也不会真正关闭,子线程会继续执行下去
            th.Start();
        }


        bool IsReflash = false;//控制下面while 循环,实现定时刷新的效果,如果在查询开始的时候需要设置为true
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值