16得票2回答
AsyncCallback和IAsyncResult模式的两个问题

关于 AsyncCallback 和 IAsyncResult 的回调模式,我有两个问题。 我改变了问题,并提供了一个代码示例:using System; using System.Collections.Generic; using System.Text; namespace Test...

15得票3回答
BeginXXX 中的参数过多,对于 FromAsync 而言如何处理?

我有一个异步方法,其签名如下:IAsyncResult BeginGetMyNumber(string foo, string bar, string bat, int bam, AsyncCallback callback, object state) 我想使用Factory.FromAsy...

13得票2回答
什么是IAsyncResult接口的正确实现方法?

我正在研究如何给我创建的一个类添加一些灵活性,该类建立与远程主机的连接并执行信息交换(握手)。当前实现提供了一个Connect函数,该函数建立连接,然后阻塞等待ManualResetEvent,直到两个方完成握手。以下是调用我的类的示例:// create a new client insta...

13得票3回答
IAsyncResult与ThreadPool的区别

最近我接触到了IAsyncResult并且花费了相当长的时间进行实践。我的疑问是为什么我们使用线程池ThreadPool时还需要使用IAsyncResult呢?根据我目前对它们的理解,在几乎所有情况下我都会选择使用ThreadPool。那么我的问题是,有没有任何情况下IAsyncResult比...

10得票4回答
如何创建一个立即完成的 IAsyncResult?

我正在实现一个接口,需要实现BeginDoSomething和EndDoSomething方法。然而我的DoSomething并不是真正的长时间运行。简单起见,假设DoSomething只比较两个变量,并返回a是否大于b。 因此,我的BeginDoSomething应该像这样: prote...

9得票4回答
HttpWebRequest.EndGetResponse在Windows Phone 7中会抛出NotSupportedException异常。

在我创建的一个Silverlight-Windows Phone 7项目中,我正在创建一个HttpWebRequest,获取RequestStream,向流中写入一些内容并尝试获取响应,但我总是收到NotSupportedException异常: "System.Net.Browser.OHW...

7得票2回答
在异步回调中执行大量处理是否可行?

在.NET的异步回调中进行重度处理,占用多秒钟后才返回,这样做可以吗?或者我是否会剥夺操作系统/运行时的重要资源? 例如,考虑TcpListener.BeginAcceptSocket。我的回调首先调用EndAcceptSocket,然后花费一段时间接收数据,最后关闭套接字并返回。这是它预期...