我正在将一些代码从完整的.NET框架移植到WP7版本,并且在同步和异步调用之间遇到了问题。
string response;
string requestString = GenerateReqString();
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("endpoint");
req.Method = "POST";
req.ContentType = "text/xml";
req.ContentLength = requestString.Length;
StreamWriter sw = new StreamWriter (req.GetRequestStream(), System.Text.Encoding.ASCII);
sw.Write(requestString);
sw.Close();
StreamReader sr = new StreamReader(req.GetResponse().GetResponseStream());
response = sr.ReadToEnd();
sr.Close();
然后将响应字符串解析成对象列表,并由该方法返回。
我的问题是,在Silverlight/WP7中没有同步调用的方法。如果我使用回调,我将在不同的函数中获得响应,并且将无法从原始函数返回它。是否有一种方法可以使调用同步或从CallBack函数返回到启动异步调用的方法?
A();B();C();
。然而,当您使用'延续传递样式'执行时,您告诉每个函数在完成时要做什么。您不是说“我从这个函数得到我的结果”,而是通过委托说“我告诉这个函数如何处理它的结果”。 - Adam Sills