私は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のWebサービスが要求した後、GUIが更新されます。
ありがとう