-1
aysnc/awaitを使用しようとしていて、過去のステップ1に問題があります。次のコードを実行すると、 "myMethod"が呼び出され、 "Bob"が渡され、 "Hello Bob"がページに表示されます。実行すると何も起こりません。私はそれをデバッグし、 "myMethod"は呼び出されません。タスクで実行されていないアクション
私には何が欠けていますか?
protected void Page_Load(object sender, EventArgs e)
{
Task.Factory.StartNew(() => myMethod("Bob")).ContinueWith(t => Label1.Text = t.Result, TaskScheduler.FromCurrentSynchronizationContext());
}
public string myMethod(string name)
{
Thread.Sleep(2000);
return "Hello " + name;
}
ASP.Netはそのようには機能しません。あなたの応答は既に提供されています。あなたはクライアント上で実行したい。 – SLaks
また、タスクスケジューラで渡すことなく 'Task.Factory.StartNew'を使用しないように注意してください(http://blog.stephencleary.com/2013/08/startnew-is-dangerous.html)。意図しないスケジューラーでコードを誤って実行することがあります。代わりに 'Task.Run'を使用するだけです(これは' Task.Run'を使用しても問題は解決しません) –