我在Silverlight的循环中调用~250个Javascript同步web服务。这需要大约3分钟才能完成。在这个时候,我的表单冻结,用户无法做任何输入,我的进度条不更新值。 这部分是在循环中。功能“取消共享”执行Web服务请求
object ret = HtmlPage.Window.Invoke("Unshare", acc.ToString(), SelectedUser.ToString());
if (ret != null)
{
bool tmpBool;
if (Boolean.TryParse(ret.ToString(), out tmpBool))
{
if (tmpBool)
{
IncreaseProgress(false);
}
}
}
_
private void IncreaseProgress(bool isError)
{
FinishedAccounts++;
label_total.Content = string.Format("Total: {0} / {1}", FinishedAccounts, Accounts.Count);
progressBar1.Value += this.ProgressStep;
if (isError)
{
Errors++;
label_error.Content = string.Format("Error: {0}", Errors);
}
}
如何在每次请求后更新gui?目前,gui冻结,并在~250网络服务请求后更新gui。
由于