AsyncCallback を何十回も書かずに、HttpWebRequest が完了するのを待つようにしています。そのために、Task で呼び出しを処理し、その中で WaitOne を使用しようとしました --> そのため、UI スレッドはブロックされません。
問題は、呼び出すたびに NotSupportedException が表示され、その理由がわかりません。誰かがそれについてもっと教えてもらえますか?おそらくこの問題を修正する方法はありますか?
ここにコード:
Task.Factory.StartNew((x)=>
{
HttpWebRequest request = WebRequest.CreateHttp(baseUri + "/api/" + ControllerName);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers["Session"] = SessionKey;
IAsyncResult GetRequestStreamResult = request.BeginGetRequestStream(null, null);
GetRequestStreamResult.AsyncWaitHandle.WaitOne(); //<-- That causes the exception
using (Stream RequestStream = request.EndGetRequestStream(GetRequestStreamResult))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(Parameter.GetType());
serializer.WriteObject(RequestStream, Parameter);
}
よろしくお願いします
クリストフ