none
WP8 SDK的WebRequest没有提供GetRequestStreamAsync,GetResponseAsync方法吗? RRS feed

  • 问题

  • 现在正在将原来的项目转到WP平台上去,现在WebRequest中只提供了Begin/End的异步方式。如果将整个项目全部改为Callback似乎有点麻烦。

    请问Begin/End的异步方式可以转为Task的方式吗?

    2012年12月18日 13:52

答案

  • 已自行解决。。。
    Exception exception = null;
    AutoResetEvetn reset = new AutoResetEvent(false);
    string htmlResult = string.Empty;
    await Task.Run(() => {
                    request.BeginGetResponse((ar) => {
                        try {
                            WebResponse response = request.EndGetResponse(ar);
                            using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
                                htmlResult = sr.ReadToEnd();
                                sr.Close();
                            }
                        }
                        catch (Exception ex) { exception = ex; }
                        finally { reset.Set(); }
                    }, null);
                    reset.WaitOne();
                });
                if (exception != null) throw exception;

    • 已标记为答案 donghui.lv 2012年12月18日 23:40
    2012年12月18日 23:40

全部回复

  • 已自行解决。。。
    Exception exception = null;
    AutoResetEvetn reset = new AutoResetEvent(false);
    string htmlResult = string.Empty;
    await Task.Run(() => {
                    request.BeginGetResponse((ar) => {
                        try {
                            WebResponse response = request.EndGetResponse(ar);
                            using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
                                htmlResult = sr.ReadToEnd();
                                sr.Close();
                            }
                        }
                        catch (Exception ex) { exception = ex; }
                        finally { reset.Set(); }
                    }, null);
                    reset.WaitOne();
                });
                if (exception != null) throw exception;

    • 已标记为答案 donghui.lv 2012年12月18日 23:40
    2012年12月18日 23:40
  • 非常感谢分享你的答案


    Mark Yu - MSFT
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年12月19日 12:57
    版主