計算を行う効率的な(可能な限り少ないスレッドを使用する)非同期方法が必要です(そして.net 4を使用します)。1つの方法は
ThreadPool.QueueUserWorkItem(f => job.DoWork());
job.Completed += (a, b) => {...} //Completed is event I fire when work is done
もう 1 つの可能性は、基本的にデリゲートを呼び出す C# v.5 より前に行われていた非同期メソッドを実装することです。BeginInvoke
BeginInvoke
私の質問は:からの新しいスレッドも使用しているように見えるので、異なる構文以外にこれら 2 つの違いはありThreadPool
ますか?
余談ですが、(JavaScriptで行われているように)(C#のどのバージョンでも)呼び出し元と同じスレッドで非同期的にメソッドを定義して呼び出すことは可能ですか?