using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using EU.ws;
using System.Threading;
using System.Xml;namespace EU
{
    public partial class S_Inphase : Form
    {
        private Thread t;        public S_Inphase()
        {
            InitializeComponent();
        }                private void BTN_DownLoad_Click(object sender, EventArgs e)
        {
            t = new Thread(new ThreadStart(Down));
            t.Name = "Down";
            t.Start();
        }        public void Down()
        {
            DownXBS();            想要这样实现但不行,
            progressBar1.Value = 1;            DownJWBS();
            progressBar1.Value = 100;
            DownZDJB();
            DownJKTJJL();
        }
        public void DownXBS()
        {
            Service s = new Service();
            DataSet ds = s.DownXBS(ConnDB.UserID);
            XmlDocument doc = new XmlDocument();
            doc.Load(ConnDB.datapath);
            XmlElement element = doc.DocumentElement;
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                XmlNode node = element.SelectSingleNode("//T002//XBS01");
                node.InnerText = row["XBS01"].ToString();                node = element.SelectSingleNode("//T002//XBS02");
                node.InnerText = row["XBS02"].ToString();                node = element.SelectSingleNode("//T002//XBS03");
                node.InnerText = row["XBS03"].ToString();                node = element.SelectSingleNode("//T002//XBS04");
                node.InnerText = row["XBS04"].ToString();                node = element.SelectSingleNode("//T002//XBS05");
                node.InnerText = row["XBS05"].ToString();                node = element.SelectSingleNode("//T002//XBS06");
                node.InnerText = row["XBS06"].ToString();                node = element.SelectSingleNode("//T002//XBS07");
                node.InnerText = row["XBS07"].ToString();                node = element.SelectSingleNode("//T002//XBS08");
                node.InnerText = row["XBS08"].ToString();                node = element.SelectSingleNode("//T002//XBS09");
                node.InnerText = row["XBS09"].ToString();                node = element.SelectSingleNode("//T002//XBS10");
                node.InnerText = row["XBS10"].ToString();                node = element.SelectSingleNode("//T002//XBS11");
                node.InnerText = row["XBS11"].ToString();                node = element.SelectSingleNode("//T002//XBS12");
                node.InnerText = row["XBS12"].ToString();
            }
            doc.Save(ConnDB.datapath);
        }
        private void DownJWBS()
        {
            Service s = new Service();
            DataSet ds = s.DownJWBS(ConnDB.UserID);
            XmlDocument doc = new XmlDocument();
            doc.Load(ConnDB.datapath);
            XmlElement element = doc.DocumentElement;
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                XmlNode node = element.SelectSingleNode("//T003//JWBS01");
                node.InnerText = row["JWBS01"].ToString();
                node = element.SelectSingleNode("//T003//JWBS02");
                node.InnerText = row["JWBS02"].ToString();
                node = element.SelectSingleNode("//T003//JWBS03");
                node.InnerText = row["JWBS03"].ToString();
                node = element.SelectSingleNode("//T003//JWBS04");
                node.InnerText = row["JWBS04"].ToString();
                node = element.SelectSingleNode("//T003//JWBS05");
                node.InnerText = row["JWBS05"].ToString();
                node = element.SelectSingleNode("//T003//JWBS06");
                node.InnerText = row["JWBS06"].ToString();
                node = element.SelectSingleNode("//T003//JWBS07");
                node.InnerText = row["JWBS07"].ToString();
                node = element.SelectSingleNode("//T003//JWBS08");
                node.InnerText = row["JWBS08"].ToString();
                node = element.SelectSingleNode("//T003//JWBS09");
                node.InnerText = row["JWBS09"].ToString();
                node = element.SelectSingleNode("//T003//JWBS10");
                node.InnerText = row["JWBS10"].ToString();
                node = element.SelectSingleNode("//T003//JWBS11");
                node.InnerText = row["JWBS11"].ToString();
                node = element.SelectSingleNode("//T003//JWBS12");
                node.InnerText = row["JWBS12"].ToString();
                node = element.SelectSingleNode("//T003//JWBS13");
                node.InnerText = row["JWBS13"].ToString();
            }
            doc.Save(ConnDB.datapath);
        }
    }
}
有现成的例子也行

解决方案 »

  1.   

    ref:
    http://blog.csdn.net/knight94/archive/2006/05/27/757351.aspx你可以在我的基础上增加显示gif的功能。
      

  2.   

    感谢Knight94(愚翁)给的例子,但是我想实现这样的方式怎么弄呢?
    MethodInvoker mi = new MethodInvoker(this.InvokeFun(1));
                this.BeginInvoke(mi);
                DownXBS();            DownJWBS();
                DownZDJB();
                DownJKTJJL();
                Thread.Sleep(100);new MethodInvoker(this.InvokeFun(参数?));
    这样不行啊
      

  3.   

    我想要控件DownXBS();DownJWBS(); DownZDJB();DownJKTJJL(); 每个过程完毕后给progressbar附加一个value值 比如像这样
    downxbs();
    progressbar.value = 10;downzdjb();
    progressbar.value = 20;........
      

  4.   

    其实在我这个例子中,线程操作部分可以不用改,但是可以在Increase函数进行修改因为可以在此可以获得线程传递进来的值,例如10或者20你在其中做个switch,根据当前的processbar的值来判断需要显示哪张图片即可。这是最简单的修改方法。比较复杂的,你可以参照Increase的做法,做一个直接在线程中操纵图片显示的函数。
      

  5.   

    MethodInvoker mi = new MethodInvoker(this.InvokeFun(参数));关键是这一步new MethodInvoker(this.InvokeFun(参数));
    提示无法使用重载函数
      

  6.   

    to MethodInvoker mi = new MethodInvoker(this.InvokeFun(参数));没有这种方法,MethodInvoker简单说是一个函数代理,并不支持参数。
      

  7.   

    只允许使用方法的名称,请问下,我要如何传递参数到InvokeFun()里呢?
      

  8.   

    其实我的文章这一点已经说得很清楚了,你仔细阅读MethodInvoker mi = new MethodInvoker(this.InvokeFun);//这是不能家参数的
    this.Invoke( mi, new object[]{ 10 } );//这里才能加参数