要在Silverlight中的HttpWebRequest.BeginGetRequestStream方法中更新UI,您可以使用以下方法:
在HttpWebRequest.BeginGetRequestStream方法的回调函数中,使用Dispatcher.BeginInvoke()方法更新UI。例如:
private void UpdateUI()
{
// 更新UI的代码
}
private void RequestCallback(IAsyncResult result)
{
// 处理请求回调
// ...
// 更新UI
Dispatcher.BeginInvoke(() => UpdateUI());
}
private void SendRequest()
{
// 发送请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");
request.BeginGetRequestStream(RequestCallback, null);
}
将需要更新的UI元素绑定到一个DependencyProperty上,然后在HttpWebRequest.BeginGetRequestStream方法的回调函数中更新DependencyProperty的值。例如:
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(string), typeof(MyControl), null);
public string MyProperty
{
get { return (string)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
private void RequestCallback(IAsyncResult result)
{
// 处理请求回调
// ...
// 更新UI
MyProperty = "新的值";
}
private void SendRequest()
{
// 发送请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");
request.BeginGetRequestStream(RequestCallback, null);
}
这样,在HttpWebRequest.BeginGetRequestStream方法的回调函数中,就可以更新UI了。
领取专属 10元无门槛券
手把手带您无忧上云