0

それとチュートリアルに関する多くの質問を読みましたが、実行されたのは1つだけで、正しく機能しませんでした。他のサイトからの情報をスクロブルする関数がありますが、これは大変な作業です。そのため、それを Page_load に配置すると、スクロブル スクリプトが完了するまでページが表示されません。ajax または async タスクを使用して、scrobble された情報を動的にロードしたいと考えていました。私が見つけて実行した唯一のものは

 protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        PhoneBaseC pbc = new PhoneBaseC(text);

        PageAsyncTask asyncTask1 = new PageAsyncTask(pbc.OnBegin, pbc.OnEnd, pbc.OnTimeout, "Async1", true);
        Page.RegisterAsyncTask(asyncTask1);
        Page.ExecuteRegisteredAsyncTasks();

        text.InnerHtml = pbc.GetAsyncTaskProgress() + "<br />";
    }

しかし、ボタンを押すと、すべてのページがフリーズし、タスクが完全に完了すると、「開始」、「終了」などの進行状況メッセージが一緒に表示されます。

おそらくプロセス完了のプログレスバーを使用して、GUIの作業と私のタスクを並行させる必要があります。私はずっと前にphpでajaxを使用していましたが、asp.netは初めてです。

PS私にとって奇妙なこと。「Page.ExecuteRegisteredAsyncTasks();」にコメントする場合 タスクがまだ実行中の行。

同じ質問がすでに回答されている場合は申し訳ありませんが、簡単な例が見つかりませんでした. そして下手な英語でごめんなさい。

4

1 に答える 1

1

作業を Signal R ハブにオフロードし、タスクが完了したらクライアントを更新できます。こちらの Nuget の Signal R を参照してくださいhttp://nuget.org/packages/SignalR。長時間実行されるタスクとクライアントの更新を達成する方法に関するオンラインのチュートリアルの多くは、google で signalr チュートリアルを入力するだけです。

于 2012-08-26T14:26:18.577 に答える