[C#]Thread与委托实现定时刷新数据功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[C#]Thread与委托实现定时刷新数据功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1530字,纯文字阅读大概需要3分钟。
内容图文
![[C#]Thread与委托实现定时刷新数据功能](/upload/InfoBanner/zyjiaocheng/1318/02fd30fdeab04579a31fb0e7a814a61c.jpg)
用户需求:定时抓取ERP系统条码已扫描未审核单据
解决办法:
由于采用Timer控件会消耗系统资源,故采用线程处理。
由于线程调用方法不支持控件处理模式,故采用委托方法实现。
bool bStop;
public DataTable dt = new DataTable();
publicScanedNotChecked_Frm()
{
InitializeComponent();
}
privatevoidScanedNotChecked_Frm_Load(object sender, EventArgs e)
{
//定义线程
Thread LogThread = new Thread(new ThreadStart(DoService));
//设置线程为后台线程,那样进程里就不会有未关闭的程序了
LogThread.IsBackground = true;
bStop = true;
if (bStop == true)
{
Control.PageControl.CheckForIllegalCrossThreadCalls = false;
LogThread.Start();//起线程
}
}
privatestringGetList()
{
SqlParameter[] parms = new SqlParameter[0];
DBCon db = new DBCon("ZM");
gdScanedNotChecked.DataSource = SqlHelper.ExecuteDataset(db.StringConnection(), CommandType.StoredProcedure, "DZ_ScanedNotChecked", parms).Tables[0];
return"重载";
}
int i = 0;
privatevoidDoService()
{
while (true)
{
bStop = false;
//别的线程里的调用哇~
i++;
lblMessage.Text = "第" + i.ToString() + "次" + returnList(returnMylist) + "数据";
System.Threading.Thread.Sleep(1000*60*5);
}
}
privatedelegatestringreturnStrDelegate();
//搞个最简单滴取值滴方法~privatestringreturnMylist()
{
return GetList();
}
//判断一下是不是该用Invoke滴~,不是就直接返回~privatestringreturnList(returnStrDelegate myDelegate)
{
if (this.InvokeRequired)
{
return (string)this.Invoke(myDelegate);
}
else
{
return myDelegate();
}
}
原文:http://blog.csdn.net/david_520042/article/details/53216939
内容总结
以上是互联网集市为您收集整理的[C#]Thread与委托实现定时刷新数据功能全部内容,希望文章能够帮你解决[C#]Thread与委托实现定时刷新数据功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。