c#线程回调

在线程执行结束之后调用的方法

因为在程序中遇到,需要知道线程执行后的到的结果,根据结果执行下一步骤的问题,所以学习下线程回调,但是为什么不执行普通方法,非要用线程呢?此次的原因是,程序中是多线程运行,在不影响其他线程执行情况下 下载文件,对资源的利用率高。但是需要根据下载的情况操作下一步,想来想去还是用线程回调吧,关键是别的方法我还不知道。。。

第一步–定义委托函数

//定义一个委托实现回调函数 参数随意,根据自己需要
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);
        }
    } 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值