これは、MSDN hereに記載されているC#.NETの非同期パターンに関する一般的な質問です。C#.NETでは、非同期操作では必然的にブロックするスレッドが作成されますか?
同期操作を呼び出す必要がある場合(たとえば-WCF、DBクエリ、IOなど)、スレッドをブロックしたくない場合(GUIスレッド)、これは意味しますかブロッキングを行う別のスレッドがどこかに存在している必要がありますか?
は必ずしもブロックするようにどこかのスレッドを必要と同期コール非同期を作っていますか?
したがって、私が長時間実行している非同期呼び出し(実際には10同期呼び出し)を行う場合、待機中のスレッドは10個必要ですか?または、10スレッドがブロックされないようにするメカニズムはありますか?
WCFでは、WCF呼び出しのBeginメソッドとEndメソッドを作成して非同期にすることができます。これは、私がこの非同期メソッドを呼び出すと、クライアントまたはサーバーのどこかにスレッドがあり、それが私を待っていることを意味しますか?
私は、非同期を達成するためのさまざまな方法についていくつかの記事を読んでいますが、これらの記事では、何がボンネットの下で行われているのか説明していません。
更新
私は.NETの興味についての詳細ですので、私は、私の質問は、より多くのspecifcました。 MSDNによって記述される非同期パターン。
アップデート2
私は同期呼び出しを非同期に行うにも、より具体的に質問を改革しました。
グレートリンクを確認することができます詳細については、完了するのを待っている任意のスレッドがあって文句を言いません。したがって明示的にはそうは言いませんが、低レベルの非同期呼び出しのように見えますが、これはスレッドをブロックすることなく行われます。しかし、同期呼び出しを非同期にする場合は、スレッドを作成する必要があります。私はこれについて正しいですか? – Mas
@Mas 'Thread'を作成することは、非同期にする唯一の方法です。要約で説明したように、同期呼び出しを非同期呼び出しに変換する他の方法もあります。 – VS1
この表によれば、すべての非同期パターンはスレッドに基づいています(タスクはバックグラウンドでスレッドも使用します)。 – Mas