我做了一个windows小程序,其中涉及了大量的数据库操作,运行时一直处于窗口一直处于假死状态,我到网上看到,说可以用线程来解决,但我看了之后,不是很明白具体意思,能不能给解释一下,最好能给点代码:)我是初学者,谢谢大家的帮助!!

解决方案 »

  1.   

    界面的处理(响应用户、窗口的维护)工作是有一个线程来处理的,而你的业务操作也放在这个线程中的化,因为工作量很大,用来维护窗口的线程的精力就不足了,表现就是假死、不响应你的请求,对于这种情况你可以把业务处理交给另外的线程来处理,这样界面线程就有足够的时间来处理它应该处理的事务。
    线程是任务处理的基本流程通道,cpu处理不同的线程是并行的(对单cpu系统严格来说不是,但可以认为它们拥有在单位时间内以均等机率运行的权利,当然这个机率和他们所在进程的优先级有关)。界面的维护不能有任何延时。你去饭店吃饭,一进门会有专人接待,但是接待的人并不兼任厨师一样,你可以想象一下,厨师兼任接待的话,恐怕大家进门后都得等待很长时间没有人理你。所以在界面线程(就是彻主线程)中最好不要做工作量不能忽略的操作。
      

  2.   

    谢谢sunyou(砂子)的回答,但我还是不知道怎么写:),例如我要点击“确定”按钮之后,处理繁琐的数据库操作, 此时怎么用代码实现, 能不能用简略的代码表示一下,谢谢了:)
      

  3.   

    谢谢sunyou(砂子)的回答,但我还是不知道怎么写:),例如我要点击“确定”按钮之后,处理繁琐的数据库操作, 此时怎么用代码实现多线程, 能不能用简略的代码表示一下,谢谢了:)
      

  4.   

    1.首先引入命名空间
    using System.Threading;
      

  5.   

    using System.Threading;Thread t=new Thread(new ThreadStart(this.run));
    t.Start();
    ///////////////
    private void run()
    {
    数据库操作
    }
      

  6.   

    学习====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2