遵循本教程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 - Does it have to be static / Does it have to return void?)。
我可以创建全局变量并保护resultString全局以便从任何地方访问它,但我不认为这是做这样的事情的正确方法。 MSDN只是将结果写入控制台(http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(v=vs.95).aspx),而不是我想要的结果。
是否存在“最佳实践”或某些事项以继续使用结果形式异步调用(在以后调用的其他方法中使用它们?