关于多线程,求人帮忙 C#程序中 读取据数据库数据 根据读取数据 绘制曲线 现在考虑到读取数据库的有一定的时间 用双线程来编 在读取数据绘制出来图片之前 原程序的界面不变 有人会弄么 请教下 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做过一个双线程的OCR项目,发点代码,参考下 ,这里的OCRStart就是你在后台读取数据库的方法。你读完这后放到一个DataTable或DataSet中,然后进行操作。Thread thr = new Thread(new ThreadStart(OCRStart)); thr.Start(); 可以用一个计时器timer控件,循环判断绘图是否完成,完成则让timer.Enabled=false 就可以了,timer其实就是另开了一个线程,但是比线程操作容易 我的想法,供你参考。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){ //完成数据读取后更新界面信息} Global.asax 定时更新数据的问题 C#多文档中,如何改变子窗口的Z-order 动态实例,新手问题 如何设置toolStrip中按钮的图片 树的遍历查找的问题(应该是算法有点问题,但一下想的不是很清楚) [求助]如何控制被包含在Repeater里的控件 如何防止windows服务程序被非法停止? vb调用webservice时,中文参数成乱码如何解决,急!!! 如何实现对两个DataSet的联合查询,并将结果输出到DataGrid中 一对多关系表,如何获得相应的数据并显示!!!???? c#字符串截取 问题 两种类的声明方式有何不同?
Thread thr = new Thread(new ThreadStart(OCRStart));
thr.Start();
{
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)
{
//完成数据读取后更新界面信息
}