最近、このトピックについてよく読んでいますが、まだ何かを明確にする必要があります
非同期メソッドの全体的なアイデアはスレッドエコノミーです:
多くのタスクを少数のスレッドで実行できるようにします。これは、ハードウェア ドライバーを使用してジョブを実行し、スレッドをスレッド プールに解放して他のジョブを処理できるようにすることによって行われます。
注意してください。
別のスレッドを結び付ける非同期デリゲートについて話しているのではありません(呼び出し元と並行してタスクを実行します)。
ただし、非同期メソッドの例の 2 つの主なタイプを見てきました。
たとえば 、既存のI/O 非同期操作のみを使用するコード サンプル (本から) 。また、既存の.net I/O 操作を使用しない非同期メソッド のサンプル も見つかりませんでし た。
beginXXX / endXX
Stream.BeginRead
Stream.BeginRead
このようなコード サンプル (およびこの)。これは実際には非同期操作を呼び出していません (作成者は自分がそうであると考えていますが、実際にはスレッドをブロックさせています!)
質問 :
非同期メソッド は、.net I/O のような既存のメソッドでのみ使用されBeginXXX , EndXXX
ますか?
つまり、 のような独自の非同期メソッドを作成したい場合 BeginMyDelay(int ms,...){..} , EndMyDelay(...)
。ブロックされたスレッドを結び付けないとできませんでした....正しいですか?
どうもありがとうございました。
ps この質問は、.net4.5 ではなく .net 4 としてタグ付けされていることに注意してください。