后台更新UI界面

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

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

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

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

WorkerSupportCancellation 一个基本点(属性)

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

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

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


public partial class Form1 : Form
    
{
        
private DataTable dt;
        
public Form1()
        
{
            InitializeComponent();
        }


        
private void Form1_Load(object sender, EventArgs e)
        
{
            backgroundWorker1.RunWorkerAsync();
        }


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


        
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        
{
            dataGridView1.DataSource 
= dt.DefaultView;
        }

    }
posted @ 2007-06-28 16:13  sharelai  阅读(1129)  评论(1编辑  收藏  举报