4
これはコードを記述する適切な方法ではないことは分かっていますが、この動作を理解したいのですが、結果を待たずに非同期のHTTPリクエストを行うたびにリクエストが終了したようです。 (私は仲間には見ません)。ASP.NETが非同期リクエストを終了するのはなぜですか?
コードサンプル:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost.fiddlerhttpclient/");
var response = client.GetAsync("zzzz");
}
}
}
}
私は、コードを変更する場合:
var response = client.GetAsync("zzzz").Result;
私はシオマネキでそれを参照しています。私は理由を理解していない - 私は、依頼が何とかバックグラウンドで処理を続けると期待しています。なぜそうではありませんか?
あなたは結果を「待つ」ことはありません。つまり、あなたはコールバックを登録していません。 – Marco
@マルコ - はい私はそれを知っていますが、誰も結果を「聞いていなくても」、とにかくバックグラウンドで処理を進めることを期待しています。 – BornToCode
しかし、あなたはあなたの 'HttpClient'をそのURLのフェッチを開始した直後に処分し、保留中のすべての操作を取り消します。 – Evk