C#のスレッディングを理解していないので、スレッドについての簡単な説明を探しています。具体的には.NET 4のStartNew()機能です。Threading .StartNew()and .Wait()
私は次のようにして、一種のfire-and-forget手法で別のメソッドを呼び出します。ウェブページが時間のかかるプロセスを開始する必要があるときに、ページが実際に結果を待つ必要がない場合は、これを行うことがあります。私が理解しているように、DoSomething()メソッドは "非同期に"実行されます。私は私は本当に、その目的のためにそれを使用していないという卑劣な疑いを持っているが -
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
DoSomething();
});
上記のコードは、私はそれをしたいだけのように動作するようです。私はまた、DoSomething()メソッドが実行される前に閉じていたコンソールアプリケーションでそれを使用しています。なぜそれがWebページ上で動作するのかコンソールアプリケーションではないのか分かりません - ページがアンロードされてもアプリケーションプールが動いているので、私は仮定しています。
実際に私を混乱させることは、私が.Wait()でそのようなコードを終了する例をたくさん見てきたことです。私が理解しているように、.Wait()は、このページの残りのコードがDoSomething()メソッドが実行されるまで待つことを意味します。この場合、私の限られた理解では、これは最初のStartNew()?
誰かが私の簡単な小さな心が理解する方法でこれを説明するのを助けてくれることを願っています!おそらく、あなたはまた、火災と忘れたアプローチでメソッドを呼び出すより良い方法を説明することができますか?どうもありがとう!
あなたは、ASP.NET内のスレッドを作成することはほとんどないはずです。また、より良い火災と忘れて使用http://hangfire.io/ –