WindowsPhone7プロジェクトでHttpWebRequestを使用してWebサーバーからデータを読み込もうとしています。
私は一度データを取得することに成功しました。しかし、同じメソッドを呼び出して2回目をロードしようとすると、例外が発生し、次のメッセージが表示されます。「これは、このスレッドが現在の関数からsを返すときに実行する次のステートメントです。」
スタンドアロンクラスからのHttpWebRequest非同期呼び出しを使用しており、Dispatcher内にOnCompletedイベントをアタッチして、WindowsPhone7のUIを更新しています。
enter code here
private void RequestStreamCallBack(IAsyncResult asyncResut)
{
HttpWebRequest hwr = asyncResut.AsyncState as HttpWebRequest;
if (hwr != null)
{
Stream stream = hwr.EndGetRequestStream(asyncResut);//error on this row, InvalidOperationExceptioni
byte[] writeByte = System.Text.Encoding.UTF8.GetBytes(_postData);
stream.Write(writeByte, 0, writeByte.Length);
stream.Close();
allDone.Set();
}
}
ユーザーがボタンをクリックするたびに1回だけ更新呼び出しをトリガーするように強制する必要がありますか?BeginGetRequestStream()を呼び出して送信する前に、コードに「isLoading」フラグを追加しようとしましたが、機能しません。それでも、コールバック関数で例外が発生しました。