1

私が受けた特定の質問を解決したいので、この質問は議論になる可能性が高い.

基本的に、ボタンが付いた WebForm1.aspx を含む asp.net プロジェクトがあります。クライアントがボタンを押すとすぐにスレッドが起動し、すぐに次のような Response.Redirect があります。

protected void Button1_Click(object sender, EventArgs e)
{
    BL.Class1 cd = new BL.Class1();
    cd.Run(); // or cd.AsyncRun();
    Response.Redirect("~/WebForm2.aspx",true);
}

もちろん、すべてが非静的でなければなりません。Business Logic クラスは次のようになります。

 public class Class1
 {
    public int Signal = 0;
    // non blocking Run... the webserver continues with this process running backwards
    public void RunAsync()
    {
        Signal = 0;
        new System.Threading.Thread(() =>
        {
            System.Threading.Thread.Sleep(100000); // simulate heavy task!
        }
        ).Start();
        Signal = 1;
    }

    // blocking Run...
    public void Run()
    {
        Signal = 0;
        System.Threading.Thread.Sleep(100000); // simulate heavy task!
        Signal = 1;
    }
}

これを念頭に置いて、ここに議論があります: - WebForm2.aspx では、"重いプロセスの後に「Signal」変数を「True」に設定し、ユーザーに(赤い背景から緑の色のdivを介して)または何か他のことを伝えます。- もしそうなら、SignalR、Node.js、WebApi、または WebSockets jet を使用したくない場合、どのようにしたら最善の方法でしょうか? - MVC プロジェクトのアプローチでそのような状況を説明する文書や本はありますか?

すべてのコミュニティは、この問題の中で助けてくれて本当に感謝しています.

br、

4

1 に答える 1

1

単純なメタ リフレッシュや、設定した間隔でページをリロードする JavaScript でうまくいくように思えます。やりたくない場合は、凝ったものは必要ありません。

負荷の高いジョブの完了ステータスに応じて、赤または緑の div を使用してページ (サーバー側) をレンダリングするだけです。

于 2013-08-02T11:40:09.610 に答える