后台更新UI界面

用c#做winForm,一个字“很慢”,大都数人都在叫BILL骂dotNet框架,我没骂,但埋怨过,有网友说过,MS是大哥,大哥没有错,

有错也是我们的错。其实主要还是我们的开发功夫没到家,UI界面处理上没有把握好,很多时候打开窗体出现假死机现象,间接影响

了中国的国民收入,原因就不说了,也说不完的。
这篇文章的出生,主要因昨晚偶和BackgroundWorker组件的懈逅,在webcast上知道有这个组件,经过数分钟的众里寻它千百度,没

错,我用的是百度,终于把它一层层华丽的衣裳剥去,只剩下DoWork和RunWorkerCompleted两个中心(事件),

WorkerSupportCancellation 一个基本点(属性)

让我们开始用艺术的眼光欣赏了

第一步:
把它请到我们的窗体上
第二步:
轻轻点击它的两个中心,生成两个事件方法
第三步:
设置WorkerSupportCancellation为true,不true就不是重点了啊。

老毛说过,没有实践就没有发言权,接下来是时候动手了,用代码说话吧!

None.gif
None.gif
public partial class Form1 : Form
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        
private DataTable dt;
InBlock.gif        
public Form1()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            InitializeComponent();
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
private void Form1_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            backgroundWorker1.RunWorkerAsync();
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            dt 
= db.getDT("server=(local);database=test;uid=sa;pwd=""select top 10 * from tbl");
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            dataGridView1.DataSource 
= dt.DefaultView;
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }

转载于:https://www.cnblogs.com/Sharelai/archive/2007/06/28/799091.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值