线程查询数据上传服务器
首先创建一个 声明委托和事件 线程
//声明委托与时间
public delegate void UpLoadHandler(DataSet dataset, string type);
public event UpLoadHandler UpLoad;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_CloseThread_Click(object sender, EventArgs e)
{
//调用test实例的MyThread方法
Thread thread = new Thread(new ThreadStart(doSomething1));
//启动线程
thread.Start();
}
/// <summary>
/// 线程方法 //查询数据库,找到未上传的数据,可在多线程中启动
/// </summary>
private void doSomething1()
{
//DataProcessing dp = new DataProcessing();
int i = 0;
while (true)
{
///发卡记录上传接口
DataSet ds = DbHelperSQL.Query("SELECT * from Base_Card where UpLoadStatus=0");
if (ds.Tables[0].Rows.Count != 0)
{
//如果找到了,开启执行事件
//这里的参数可以是你数据的实体类
this.UpLoad(ds ,"");
}
//线程 界面传值
this.Invoke(new Action(() =>
{
lbl_progress.Text = i++.ToString();
}));
//线程休眠500毫
Thread.Sleep(1000);
}
}
/// <summary>
/// 加载。。。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Frm_Main_Load(object sender, EventArgs e)
{
//绑定事件
DataProcessing pub = new DataProcessing(this);
UpLoad += pub.upload;
}
事件处理数据上传类
/// <summary>
/// 数据处理
/// </summary>
class DataProcessing
{
public DataProcessing(Frm_Main test1)
{
}
/// <summary>
/// 发卡记录上传接口(vn_base_card)
/// </summary>
public void upload(DataSet ds, string type)
{
//这里上传数据
System.Windows.Forms.MessageBox.Show("上传数据啦");
}
}
/// <summary>
/// 关闭窗体终止线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e)
{
Environment.Exit(0);
}