2011-11-08 10 views
2

舞台裏でサーバーにhttpコールを行うAPIを使用するように求められました。同期APIをラップしてメソッドを非同期として公開するパターンはありますか?

残念ながら、すべての呼び出しは同期的です。私はこのAPIのクラスをラップして非同期呼び出しを行うことができ、呼び出しを取り消すことができます。

このAPIを公開するWCFサービスを公開すると、ライセンス違反となります。

これを行うためのパターンはありますか?

+1

同期または非同期のAPIは、純粋なクライアント側の決定であり、サービスに固有ではありません。 – CodesInChaos

+0

呼び出しているAPIが同期している場合は、非同期を行うための操作はできません。 _appear_を非同期にすることができます(タスク内でラップするか、単にスレッドを使用するだけで済みます)。しかし、スレッドがそのAPIを呼び出すスレッドのいずれかが終了すると、応答を待ってブロックされます。 – BFree

答えて

2

Task.Factory.StartNewで新しいスレッドで実行される新しいタスクをいつでも起動できます。スレッドスプール以外のスレッドで競合通知が必要な場合は、SynchronizationContextを使用して別のスレッドにスケジュールすることをお勧めします。

関連する問題