2010-12-21 12 views
0

私はスレッドで起動する非常に長い実行プロセスを持っています。これは、それが何をしているのかを伝えるメッセージでイベントを起こします。イベントを発生させるスレッドからのメッセージで画面を更新する(ASP.NET)

これらのメッセージで画面上のラベルを更新するにはどうすればよいですか? (ラベルがあれば、更新パネルに表示されます)。

これができない場合は、より良い方法を提案できますか?

答えて

3

ページ要求が完了すると、サーバーには要求しているブラウザの知識や接続がないため、ユーザーに簡単に応答することができません。最も簡単な方法は、識別子を使用してメッセージを何らかの方法で永続化し、サービスまたはCallBack関数を介してメッセージを公開することです。サービスに呼び出しを行い、それに従ってUIを更新するには、Ajaxタイマーを使用できます。

0

それは、更新に非常に有用である背景-労働者を使用してUIはい、できます link text

+0

リンクはWindowsアプリケーションには便利ですが、Webアプリケーションの場合はどうなりますか? – sam

1

。パラメータ(表示するメッセージ文字列)を持つメソッドを作成します。 Like:

private void SetLabelText(string message) 
{ 
      if (label.InvokeRequired) 
      { 
       Invoke(new MethodInvoker(() => SetLabelText(message) 
          )); 
      } 
      else 
      { 
       label.Text = message; 
      } 
} 

このメソッドは、イベントハンドラで使用します。

関連する問題