私はスレッドで起動する非常に長い実行プロセスを持っています。これは、それが何をしているのかを伝えるメッセージでイベントを起こします。イベントを発生させるスレッドからのメッセージで画面を更新する(ASP.NET)
これらのメッセージで画面上のラベルを更新するにはどうすればよいですか? (ラベルがあれば、更新パネルに表示されます)。
これができない場合は、より良い方法を提案できますか?
私はスレッドで起動する非常に長い実行プロセスを持っています。これは、それが何をしているのかを伝えるメッセージでイベントを起こします。イベントを発生させるスレッドからのメッセージで画面を更新する(ASP.NET)
これらのメッセージで画面上のラベルを更新するにはどうすればよいですか? (ラベルがあれば、更新パネルに表示されます)。
これができない場合は、より良い方法を提案できますか?
ページ要求が完了すると、サーバーには要求しているブラウザの知識や接続がないため、ユーザーに簡単に応答することができません。最も簡単な方法は、識別子を使用してメッセージを何らかの方法で永続化し、サービスまたはCallBack関数を介してメッセージを公開することです。サービスに呼び出しを行い、それに従ってUIを更新するには、Ajaxタイマーを使用できます。
それは、更新に非常に有用である背景-労働者を使用してUIはい、できます link text
。パラメータ(表示するメッセージ文字列)を持つメソッドを作成します。 Like:
private void SetLabelText(string message)
{
if (label.InvokeRequired)
{
Invoke(new MethodInvoker(() => SetLabelText(message)
));
}
else
{
label.Text = message;
}
}
このメソッドは、イベントハンドラで使用します。
リンクはWindowsアプリケーションには便利ですが、Webアプリケーションの場合はどうなりますか? – sam