0

按照本教程http://msdn.microsoft.com/en-us/library/hh221581.aspx我创建了一个 HttpWebRequest。

为回调函数生成此代码:

    private void ReadCallback(IAsyncResult result)
    {

        HttpWebRequest request = result.AsyncState as HttpWebRequest;

        if (request != null)
        {
            try
            {
                WebResponse response = request.EndGetResponse(result);

                using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
                {
                    string resultString = streamReader1.ReadToEnd();
                }
            }
            catch (WebException e)
            {
                return;
            }
        }
    }

现在我在 resultString 中得到了一些数据,但由于调用是异步的,因此我无法以正常方式返回它(可以在此处阅读:AsyncCallBack - 它必须是静态的/它必须返回 void 吗?)。

我可以创建全局变量并保护 resultString 全局以从任何地方访问它,但我认为这不是执行此类操作的正确方法。MSDN 只是将结果写入控制台(http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(v=vs.95).aspx),并不是我真正想要的。

是否有“最佳实践”或其他方法来处理异步调用的结果(用于在稍后调用的其他方法中使用它们?

4

0 回答 0