在线程执行结束之后调用的方法
因为在程序中遇到,需要知道线程执行后的到的结果,根据结果执行下一步骤的问题,所以学习下线程回调,但是为什么不执行普通方法,非要用线程呢?此次的原因是,程序中是多线程运行,在不影响其他线程执行情况下 下载文件,对资源的利用率高。但是需要根据下载的情况操作下一步,想来想去还是用线程回调吧,关键是别的方法我还不知道。。。
第一步–定义委托函数
//定义一个委托实现回调函数 参数随意,根据自己需要
public delegate void CallBackDelegate(List message);
第二步–委托实现方法和定义线程
CallBackDelegate cbd = CallBack;
Thread thread = new Thread(initFtpParam);
thread.Start(cbd);
/// <summary>
/// 线程方法
/// </summary>
/// <param name="obj"></param>
public void initFtpParam(object obj)
{
try
{
//线程执行方法
。。。。。。
。。。。。。
CallBackDelegate callBackDelegate = obj as CallBackDelegate;
callBackDelegate(lsqlStr);
}
catch (Exception ex)
{
}
}
第三步—回调方法
/// <summary>
/// 回调方法
/// </summary>
/// <param name="message"></param>
private void CallBack(List<string> message)
{
try {
//主线程报告信息,可以根据这个信息做判断操作,执行不同逻辑.
DBUtility.GetDbInstance().ExecuteBatchSQL(lsqlStr);
SleMain.ps.SendMessage("FF0100");
} catch (Exception ex) {
AppLog.Info(LoggerEnum.LogType.OTHER.ToString(), "更新参数版本差异失败" + ex.Message);
}
}