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();
Console.WriteLine();
// 发射亮灯
BasketLight.SendCmd(, BasketLight.CmdType.Ready, , ref commandMessage);
return "";
} private void FindBox()
{
var commandMessage = "";
Thread.Sleep();
Console.WriteLine();
// 发射亮灯
BasketLight.SendCmd(, BasketLight.CmdType.Ready, , ref commandMessage);
}
WPF 异步执行的更多相关文章
- 【转】WPF 异步执行方法后对 UI 进行更新的几种方法
使用 async/await 的情况: private async void Button_Click(object sender, RoutedEventArgs e) { (sender as B ...
- Python开发程序:RPC异步执行命令(RabbitMQ双向通信)
RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步h ...
- sql异步执行
/// <summary> /// 按钮事件 异步执行 /// </summary> /// <param name="sender">< ...
- thread.join 从异步执行变成同步
Java的线程模型为我们提供了更好的解决方案,这就是join方法.在前面已经讨论过,join的功能就是使用线程 从异步执行变成同步执行 当线程变成同步执行后,就和从普通的方法中得到返回数据没有什么区别 ...
- Saltstack异步执行命令(十三)
Saltstack异步执行命令 salt执行命令有时候会有超时的问题,就是命令下发下去了,部分主机没有返回信息,这时候就很难判断命令或任务是否执行成功.因此,salt提供异步执行的功能,发出命令后立即 ...
- ajax同步、异步执行简单理解与证明
此理解范例代码来自前几篇随笔! 首先我们来先了解下AJAX: Ajax:全称“Asynchronous Javascript and XML”(异步Javascript和XML),他是由Javascr ...
- 对Javascript异步执行的理解
简单的查看了下Javascript异步编程的代码.按照网上的说法,Javascript异步编程的核心就在于setTimeout.这个系统函数让我们将函数的执行放在了一个指定的新“线程”中.于是本来的顺 ...
- Jquery ajax 绑定multiselect多选下拉选项,同时异步执行返回值
Jquery ajax 绑定multiselect多选下拉选项,同时异步执行获取返回值 function load(mslt_employees,belongto,mark) {//传入$(#ID) ...
- Omnithreadlibary学习(3)-IOmniTask异步执行SendMessage
在任务中发送消息, 可以是函数或者对象方法 TOmniTaskMessageEvent = procedure(const task: IOmniTaskControl; const msg: TOm ...
随机推荐
- 【转】windows平台多线程同步之Mutex的应用
线程组成: 线程的内核对象,操作系统用来管理该线程的数据结构. 线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量. 操作系统为每一个运行线程安排一定的CPU时间 —— 时间片.系统通 ...
- Docker(二):Dockerfile使用介绍
上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像.容器和 Dockerfile .我们使用 Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dock ...
- mysql insert if not exists防止插入重复记录的方法(转)
MySQL 当记录不存在时插入(insert if not exists) 在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当 ...
- 从前端的UI开始
MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,ViewState这些东 ...
- 安卓7.0遇到 android.os.FileUriExposedException: file:///storage/emulated.. exposed beyond app through Intent.getData()
1.在AndroidManifest.xml中添加如下代码 <?xml version="1.0" encoding="utf-8"?> <m ...
- IE6,IE7浏览器下 margin 无效的解决方法
今天有时间,所以特意做了一个测试. 复制代码 代码如下: <style type="text/css"> .test-1,.test-2{border:5px soli ...
- Groovy 学习手册(3)
五. Groovy 的设计模式 设计模式是一种非常好的方式,可以使你的代码变得实用,可读又具有扩展性.跟 Java 相比,在 Groovy 里使用设计模式使代码更加简洁和容易. 1. 策略模式 设想一 ...
- php网站被挂木马修复方法总结
在linux中我们可以使用命令来搜查木马文件,到代码安装目录执行下面命令 代码如下 复制代码 find ./ -iname "*.php" | xargs grep -H -n & ...
- 使用base64编码的好处
在项目中,将报文进行压缩.加密后,最后一步必然是使用base64编码,因为base64编码的字符串,更适合不同平台.不同语言的传输: 它不受其他编码的影响,仍然保持不变,这点很有意义,如下验证: St ...
- [Golang] 从零开始写Socket Server(1): Socket-Client框架
版权声明:本文为博主原创文章,未经博主允许不得转载. 第一次跑到互联网公司实习 ..感觉自己进步飞快啊~第一周刚写了个HTTP服务器用于微信公共号的点餐系统~ 第二周就直接开始一边自学Go语言一边写用 ...