我尝试等待 HttpWebRequest 完成而不编写一打 AsyncCallback。为此,我尝试在 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);
}
此致
克里斯托夫