ファイルの操作を行うページが1つあり、ファイルが完成したらamazon s3にアップロードする必要があります。ファイルが大きくなることがあるので、送信時にユーザーが過度に待機する必要があります。どのように私は私がその機能を待つ必要はありません 関数を呼び出すにはどうしたらいいのですか? - ASP.NET
-
ようなものを作ることができ、私はのResponse.Redirectを使用したいですアップロードが完了する前に
ファイルの操作を行うページが1つあり、ファイルが完成したらamazon s3にアップロードする必要があります。ファイルが大きくなることがあるので、送信時にユーザーが過度に待機する必要があります。どのように私は私がその機能を待つ必要はありません 関数を呼び出すにはどうしたらいいのですか? - ASP.NET
最も簡単な方法:ありこれを主張し、以下のいくつかのコメントがあるので、私はこれを書いた
ThreadPool.QueueUserWorkItem(YourUploadMethod);
:
protected void Page_Load(object sender, EventArgs e)
{
ThreadPool.QueueUserWorkItem(YourUploadMethod);
Response.Redirect("http://google.com");
}
public void YourUploadMethod(object state)
{
Thread.Sleep(7000);
}// breakpoint: I was redirected to google and then debugger stopped me here
メインスレッドがいったん終了すると、バックグラウンドスレッドも(完了しているかどうかにかかわらず)死にますので、このメソッドはasp.netでは機能しません。 – hofnarwillie
私はResponse.End、Response.Redirect、またはServer.Transferはメインスレッドのみを中止すると思います。この質問を参照してください:http://stackoverflow.com/questions/1087777/is-response-end-considered-harmful –
あなたは正しいです。私は訂正した。 :) – hofnarwillie
あなたはそのために、AJAX非同期アップローダーコントロールを使用することができますが、点で最大リダイレクトカントアップロードは終了です。 –