zoukankan      html  css  js  c++  java
  • WPF 异步执行

    private void Operate_OnClick(object sender, RoutedEventArgs e)
    {
        AsyncFindBox(); 
        RadWindow.Alert("测试测试!");
    }
    
    private void AsyncFindBox()
    {
        #region 需要将返回结果返回到UI上。 
        //异步任务封装在一个delegate中, 此delegate将运行在后台线程
        Func<string> asyncAction = this.AsyncActionMethod;
        
        //在UI线程中得到异步任务的返回值,并更新UI
        //必须在UI线程中执行
        Action<IAsyncResult> resultHandler = delegate(IAsyncResult asyncResult)
        {
            //异步执行后,将值更新到UI上。
            //string result= asyncAction.EndInvoke(asyncResult);
            //SearchValue.Text=result; 
        };
        //异步任务执行完毕后的callback, 此callback运行在后台线程上.
        //此callback会异步调用resultHandler来处理异步任务的返回值.
        AsyncCallback asyncActionCallback = delegate(IAsyncResult asyncResult)
        {
             Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, resultHandler, asyncResult);
        };
        //在UI线程中开始异步任务,
        //asyncAction(后台线程), asyncActionCallback(后台线程)和resultHandler(UI线程)
        //将被依次执行
         asyncAction.BeginInvoke(asyncActionCallback, null);
         #endregion
         
        #region 不需要将返回结果返回到UI上的。 
        //Func<string> asyncAction = this.AsyncActionMethod;
        //asyncAction.BeginInvoke(null, null);
        
        //Action asyncAction = this.FindBox; //方法无返回值
        //asyncAction.BeginInvoke(null, null);
         #endregion
    }
    
    private string AsyncActionMethod()
    {
        var commandMessage = "";
        Thread.Sleep(5000);
        Console.WriteLine(1111);
        // 发射亮灯  
        BasketLight.SendCmd(5, BasketLight.CmdType.Ready, 0, ref commandMessage);
        return "";
    }
    
    private void FindBox()
    {
        var commandMessage = "";
        Thread.Sleep(5000);
        Console.WriteLine(1111);
        // 发射亮灯  
        BasketLight.SendCmd(5, BasketLight.CmdType.Ready, 0, ref commandMessage); 
    }
  • 相关阅读:
    剑指offer 51.构建乘积数组
    剑指offer 50.数组中重复的数字
    股票价格涨跌预测—基于KNN分类器
    R语言-神经网络包RSNNS
    基于客户保持率的人口特性分析
    车辆碰撞位置间的关联性分析
    统计学的七大支柱[转载@谢益辉]
    AutoDesK演示项目部署
    自定义数字键盘组件化方案
    2020年大前端发展趋势
  • 原文地址:https://www.cnblogs.com/vipsoft/p/4535037.html
Copyright © 2011-2022 走看看