アプリ版:「スタンプのみでお礼する」機能のリリースについて

ASP.NET(C#)でWebアプリを作成中です。初心者です。

「ボタンを押した後、一定時間ごとにテキストボックスにメッセージを表示する」ということは可能でしょうか?

単純に以下のように記述とすると、10秒後にi=9のときのメッセージのみがテキストボックスに表示されます。
1秒ごとにメッセージを表示するには、逐次的にクライアントへ結果を返す必要があると思うのですが、可能でしょうか?

void Button1_click(Object sender, EventArgs e){
  for(int i=0; i<10; i++){
    TexBox1.Text = "○○";
    Thread.Sleep(1000);
  }
}


また、この処理はバックグラウンドで動作させたいと思っています。
スレッド化すれば良いと思い、手始めに以下のようなコードを書いたのですが、テキストボックスには何も表示されません。スレッドからメッセージを表示させるにはどうしたら良いでしょうか?

void Button1_click(Object sender, EventArgs e){
  Thread t = new Thread(new ThreadStart(Output));
  t.Start();
}
void Output(){
  TexBox1.Text = "○○";
}


以上2点よろしくお願いします。方針やキーワードだけでも教えていただけると助かります。

A 回答 (1件)

Webアプリケーションはクライアントからの


リクエストにレスポンスしたら終わりです。
つまり、1リクエスト、1レスポンスです。
バックグラウンドもスレッド化も残念ですが
見当外れです。
クライアントが一定時間ごとに、サーバに
リクエストを発行するように発想を変えます。
クライアントサイドなので、JavaScriptを使い
Timeoutで一定時間経過したらSubmitする
か、AJAXでテキストボックスの内容を変更
するようにします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!