最近在使用webrequest的时候,发现一个问题,就是当我在远程调用返回值的时候,总是返回为空,
百思不得其解,最后发现,每次直接读到返回流的时候,总是返回为空,就用线程异步进行了操作,果然成了。
private delegate void dispatcherInvoke(string param);
void ResponseReady(IAsyncResult asyncResult)
{
WebRequest request = asyncResult.AsyncState as WebRequest;
WebResponse response = request.EndGetResponse(asyncResult);
using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream); // lblPrice.Text = "价格:" + reader.ReadToEnd(); //异步马上执行返回,这样才能返回值 ,要不然会产生等待。 lblPrice.dispatcher.BeginInvoke((dispatcherInvoke)ShowResult,reader.ReadToEnd()); } } void ShowResult(string result) { lblPrice.Text = "价格:" + result; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。