0

このチュートリアルhttp://msdn.microsoft.com/en-us/library/hh221581.aspxに従って、HttpWebRequest を作成しました。

Callback 関数用に次のコードを生成します。

    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;
            }
        }
    }

今、私は結果文字列にいくつかのデータを取得しましたが、呼び出しが非同期であるため、通常の方法でそれを返すことはできません (ここで読むことができるように: 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 ) に書き込むだけで、実際には私が望んでいることではありません。

非同期呼び出しからの結果を処理するための「ベストプラクティス」または何かがありますか(後で呼び出される他のメソッドでそれらを使用するため)?

4

0 に答える 0