0

我正在将使用 REST API 的 Android 应用程序移植到 WP7 平台。

在 Android 中,所有 REST API 调用都是阻塞的,我手动使用 Executors 来平衡执行网络 I/O 的线程。

在 WP7 和 Silverlight 中,我必须使用 HttpWebRequest.BeginGetResponse 并且它只有读取响应的异步变体。

是吗:

1) 使用 I/O 异步完成之类的东西,它真的是异步的吗?或2)只是在它后面的+线程内部使用阻塞读/写操作?

4

1 回答 1

0

我刚刚使用反射器检查了源代码,它是在线程池上执行的阻塞调用。

public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state)
{
    this.startGetResponse();
    LazyAsyncResult result = new LazyAsyncResult(this, state, callback);
    if (!ThreadPool.QueueUserWorkItem(new WaitCallback(this.asyncGetResponse), result, true))
    {
        throw new OutOfMemoryException(SR.GetString(0x49, new object[0]));
    }
    return result;
}
于 2012-07-29T19:47:04.830 回答