多线程之异步回调的运用

应项目的技术需求,必须在某事件完毕后,根据返回结果执行相关业务逻辑,但前提是不允许出现UI假死,所以就想到了异步回调实现。

自身模拟了一下“轮循”。

以下为Winform案例源码 

        //状态值
        private bool isContinue=true;
        public Form3()
        {
            InitializeComponent();
        }

        //阻断主线程
        private void Stop(int i)
        {
            while (isContinue)
            {
                Thread.Sleep(i * 1000);
                MessageBox.Show("阻断执行完毕!");
            }
        }

        //执行线程阻断事件

        private void button1_Click(object sender, EventArgs e)
        {
            Action<int> act= new Action<int>(Stop);
            act.BeginInvoke(10, Doafter, "10");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("终止止断!");
            isContinue= false;
        }
        protected void Doafter(IAsyncResult iar)
        {
            MessageBox.Show("执行业务逻辑!");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值