C#程序中 读取据数据库数据  根据读取数据 绘制曲线 现在考虑到读取数据库的有一定的时间 用双线程来编  在读取数据绘制出来图片之前 原程序的界面不变  有人会弄么  请教下 谢谢了

解决方案 »

  1.   

    做过一个双线程的OCR项目,发点代码,参考下 ,这里的OCRStart就是你在后台读取数据库的方法。你读完这后放到一个DataTable或DataSet中,然后进行操作。
    Thread thr = new Thread(new ThreadStart(OCRStart));
      thr.Start();
      

  2.   

    可以用一个计时器timer控件,循环判断绘图是否完成,完成则让timer.Enabled=false 就可以了,timer其实就是另开了一个线程,但是比线程操作容易
      

  3.   

    我的想法,供你参考。public delegate void DataReaderEventHandler(object sender, DataReaderEventArgs e);    public class DataReaderEventArgs : System.EventArgs
        {
            public object DataSource { get; set; }        public DataReaderEventArgs(object dataSource)
            {
                this.DataSource = dataSource;
            }
        }    public class DataHelper
        {
            public event DataReaderEventHandler DataLoad;        public void Load(object parameters)
            {
                var thread = new Thread(new ThreadStart(DoReader));            thread.Start();
            }        void DoReader()
            {
                // 读取数据并缓存到 dataSource
                object dataSource = new object();            if (DataLoad != null)
                {
                    var load = DataLoad;                load(this, new DataReaderEventArgs(dataSource));
                }
            }
        }
    在按下“改变月份”时:
    DataHelper dataHelper = new DataHelper();
    dataHelper.DataLoad += new DataReaderEventHandler(dataHelper_DataLoad);
    dataHelper.Load(null);void dataHelper_DataLoad(object sender, DataReaderEventArgs e)
    {
         //完成数据读取后更新界面信息
    }