我有一个UserControl上的事件,我正在听:
public void OnSomething(SomeEventArgs args){
SomeResult result = ?await? _businessObject.AsyncCall();
ApplySomethingOnTheGuiBasedOnTheResult(result);
}
_businessObject。AsyncCall()
具有以下签名:
public async Task<SomeResult> AsyncCall();
在以下情况下,如何调用此异步方法:
ApplyThingOnTheGuBasedOnTheResult
ApplyThingOnTheGuBasedOnTheResult
。我所尝试的:
public void OnSomething(SomeEventArgs args){
SomeResult result = await _businessObject.AsyncCall();
ApplySomethingOnTheGuiBasedOnTheResult(result);
}
--
public void OnSomething(SomeEventArgs args){
SomeResult result = _businessObject.AsyncCall().Result;
ApplySomethingOnTheGuiBasedOnTheResult(result);
}
--
public void OnSomething(SomeEventArgs args){
_businessObject.AsyncCall().ContinueWith(t=>{
if(InvokeRequired){
Invoke(new Action(()=>ApplySomethingOnTheGuiBasedOnTheResult(t.Result)));
}
});
}
--
您只需将处理程序标记为异步:
public async void OnSomething(SomeEventArgs args)
{
SomeResult result = await _businessObject.AsyncCall();
ApplySomethingOnTheGuiBasedOnTheResult(result);
}
我知道不建议使用asyc
和返回类型val
(通常应该是Task
或Task
这样,控制流就会在wait语句中返回给调用者。当异步调用完成后,在UI线程上等待后,最终会继续执行。
问题内容: TL; DR我正在寻找一种让一个线程在另一个线程中引发事件的方法 编辑: 我说“立即”一词,正如一些评论家指出的那样,这是不可能的。我的意思是,如果gui线程处于空闲状态,则应该在毫秒到十亿分之一秒的范围内相当快地发生(这应该是正确的,如果我做对的话)。 案例示例: 我有一个具有Parent类的项目。该Parent类创建一个子线程“ Gui”,该子线程包含一个javafx应用程序并实现
本文向大家介绍JavaScript 异步调用,包括了JavaScript 异步调用的使用技巧和注意事项,需要的朋友参考一下 问题 可修改下面的 aa() 函数,目的是在一抄后用 console.log() 输出 want-value 但是,有额外要求: aa() 函数可以随意修改,但是不能有 console.log() 执行 console.log() 语句里不能有 setTimeout 包裹 解
Provider端异步执行将阻塞的业务从Dubbo内部线程池切换到业务自定义线程,避免Dubbo线程池的过度占用,有助于避免不同服务间的互相影响。异步执行无益于节省资源或提升RPC响应性能,因为如果业务执行需要阻塞,则始终还是要有线程来负责执行。 注意:Provider端异步执行和Consumer端异步调用是相互独立的,你可以任意正交组合两端配置 Consumer同步 - Provider同步 C
从v2.7.0开始,Dubbo的所有异步编程接口开始以CompletableFuture为基础 基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小。 使用CompletableFuture签名的接口 需要服务提供者事先定义CompletableFuture签名的服务,具体参见服务端异步执行接口定义: public interface Asyn
同步调用异步方法最安全的方法是什么?
我想设置一个vue.js组件的数据与按钮模板和@单击事件。此事件调用一个方法组件,该组件调用带有promise的异步函数。 当我单击我的按钮时,段落标记html的结果正确显示,但同时它在我的检查器浏览器中生成了一个错误,如下所示: vue.runtime.esm.js:620[vue warn]:v-on处理程序中的错误:“TypeError:foo.then(…).bind不是函数” 在 ---