0 0

在C#中如何方便的实现异步调用,并通过回调接口返回结果?20

现在的问题是这样
在c#写的主界面一棵树上点击一个节点(check),然后会调用一个远程接口(webservice),同步等待结果返回后,然后再把结果显示到一个grid中。
但是现在远程接口的速度并不理想,大概差不多一秒钟才能返回。这个时候整个界面会被卡住无法操作。
于是就想到将调用接口这个函数作为异步调用。等结果返回后,通过一个回调函数更新界面的grid
使用的是C# 2.0,VS2005,是否可以实现?使用什么样的技术实现?

问题补充:
补充一下,虽然调用的是webservice,但是不是标准的soap,用的是hessian
2009年8月20日 13:44

4个答案 按时间排序 按投票排序

0 0

参考这个看看

2009年8月24日 22:14
0 0

http://bit.ly/DTGWx

2009年8月20日 18:12
0 0

//实体化WebService引用
private AsynWebService.Service1 asynSer;
//构造函数初始化WebService引用,并为异步调用WebService设置好了结果处理函数【方法名Completed】(先这么叫吧,我也不知道怎么叫)
public _Default()
{
     asynSer = new AsynWebService.Service1();
     asynSer.HelloWorldCompleted += new AsynWebService.HelloWorldCompletedEventHandler(asynSer_HelloWorldCompleted);
}
protected void Button1_Click(object sender, EventArgs e)
{
    //开始异步调用HelloWorld;
     asynSer.HelloWorldAsync();
}

protected void asynSer_HelloWorldCompleted(object sender, AsynWebService.HelloWorldCompletedEventArgs e)
{
    this.Label1.Text = e.Result.ToString();
}

2009年8月20日 14:02
0 0

不能实现,.net3.0才可以异步调用

2009年8月20日 13:53

相关推荐

    C#同步调用,异步调用,异步回调.docx

    在 C# 编程中,同步调用、异步调用和异步回调都是重要的概念。同步调用可以确保线程阻塞,但是它可能会影响程序的性能。异步调用可以提高程序的性能,但是它存在等待调用结果的问题。异步回调可以解决这个问题,使用...

    C#实现异步调用外部程序

    在C#编程中,异步调用外部程序是一种常见的需求,尤其在处理耗时操作或者不希望阻塞主线程执行的情况下。本篇文章将深入探讨如何使用C#来实现这一功能,以及相关的知识点。 首先,我们需要了解异步编程的基本概念。...

    c#异步回调用时开始另一个异步调用

    当一个异步操作完成时,我们可能需要在它的回调函数中开始另一个异步调用,这通常是为了实现链式异步任务或者处理依赖关系。这个过程涉及到C#中的`async/await`关键字、回调函数以及线程管理。 首先,`async`和`...

    c#中的异步调用

    在C#编程中,异步调用是一种关键的技术,它允许程序在等待耗时操作(如网络请求或I/O操作)完成时,不阻塞主线程执行其他任务。这种技术提高了应用程序的响应性和效率,特别是在UI应用中,可以避免用户界面的冻结。...

    C#异步回调

    标题中的"C#异步回调"指的就是使用`AsyncResult`实现的异步操作,这种方式通常涉及到委托、事件和回调函数。在.NET中,异步操作通常通过`BeginXXX`和`EndXXX`方法对来实现,其中`BeginXXX`启动异步操作,而`EndXXX`...

    C#回调函数

    2. **异步编程**:在.NET Framework中,`BeginInvoke`和`EndInvoke`方法用于异步调用,其中可以传递一个回调方法。当异步操作完成时,回调方法会被调用,从而更新UI或进行其他后续处理。 3. **自定义算法**:有时,...

    异步调用04-执行回调方法-C#

    如果启动异步调用的线程是不需要处理结果的线程,则可以在调用完成时执行回调方法。回调方法在线程池线程上执行。 若要使用回调方法,必须将引用回调方法的AsyncCallback委托传递给BeginInvoke。也可以传递包含回调...

    C# 实现回调函数

    回调函数在编程中是一种强大的...总结来说,C#中的回调函数通过委托、事件和lambda表达式等方式实现,它们在异步编程、事件处理和算法定制等方面发挥着重要作用。理解和熟练运用回调函数,能让你的C#代码更加灵活高效。

    C#异步数据接收串口操作

    在C#中,可以通过串口发送AT指令,等待响应,解析返回结果来实现短信的发送。例如,发送一条短信的AT指令可能为"AT+CMGS='电话号码'\r\n短信内容",然后监听串口接收AT命令的回应,确认短信发送成功。 在"smsForC#...

    C#异步调用的好处和方法

    最后,在`SetVideoInfo`方法中,通过实例化委托并使用`BeginInvoke`方法启动异步操作,同时指定回调方法。 2. **使用Invoke和MethodInvoker**: - 当需要在一个非UI线程中更新UI元素时,可以使用`Invoke`方法和`...

    C#异步回调算法

    当异步操作完成后,线程不会立即返回到线程池中,而是会调用预先设置的回调方法。这意味着开发者需要在调用 `BeginInvoke` 时指定一个 `AsyncCallback` 委托,以确保能够正确地处理异步操作的结果。 #### 二、示例...

    C#回调函数示例

    通过以上步骤,我们就能够在C#中实现并使用回调函数。回调函数是C#中强大的工具,能够帮助我们构建灵活、可扩展的代码结构,尤其在处理异步操作、事件驱动编程时显得尤为重要。在VS2013环境中,你可以创建一个新项目...

    ICE异步调用Demo源码

    这个“ICE异步调用Demo源码”是针对ICE框架的一个示例,展示了如何在C++环境中实现异步调用功能,特别是 adm 和 ami 函数的调用与异步分发。以下将详细解析这个Demo中的关键知识点: 1. **ICE框架**:ICE由ZeroC...

    C#跨窗体(Winform)调用控件(委托回调)

    // 这里可以触发调用回调的逻辑 } ``` 4. 在目标窗体(Form2)中,创建一个按钮事件处理程序,通过委托调用源窗体的回调方法: ```csharp private void button1_Click(object sender, EventArgs e) { Form1 form1 ...

    c#线程结束后,实现的委托回调函数源码

    当操作完成后,线程会自然结束,此时`ExecuteWithCallback`方法中的`Join`会返回,进而调用回调函数。 在主线程中,我们可以这样使用上述功能: ```csharp void MainMethod() { // 创建并启动线程,同时指定回调...

    委托的异步回调简单例子

    然后,创建一个使用这个委托的方法,该方法将执行耗时的操作,并在完成后调用回调函数。例如: ```csharp public void AsyncMethod(AsyncCallbackDelegate callback, object state) { // 模拟耗时操作 Thread....

    C#异步调用

    ### C#中的异步调用:理解异步Web方法 #### 异步Web方法的工作原理 在.NET框架中,特别是ASP.NET中,异步Web方法是处理长时间运行操作的一种高效方式。这种技术允许Web服务执行耗时的任务而不阻塞主线程,从而提高...

    C# 委托与异步调用

    【C# 委托与异步调用】 在C#编程中,委托是一种类型安全的函数指针,它可以引用一个方法或者一组方法。而异步调用则是为了让程序在执行耗时操作时,能够不阻塞主线程,提高应用程序的响应性。尤其在执行如打开大...

Global site tag (gtag.js) - Google Analytics