私は最近、私のコストを発見したので、同期コンテキストがないときにawait
を実行すると、別のスレッドで実行待ちの後にコードが返される可能性があります。同じスレッドで実行を待ってから、どのように継続を取得できますか?
私は現在、VSTOオフィスアドインで奇妙な動作に問題がありますが、これはおそらくこの動作の結果と思われます。 Officeアプリケーションによって生成されたイベントを処理する場合、(同期コンテキストを作成するフォームを作成しない限り)同期コンテキストはありません。
私の質問は、フォームを作成することが、同期コンテキストがあることを確認するための最も効果的な方法か、最も簡単な方法かどうかです。
この場合、 'await'を使用しないほうが簡単でしょうか?使用しているAPIが非同期のみの場合は、 'Task'の' Result'または 'Wait()'を使って実現できます。 – svick
@スヴィック:あなたが言っていることは、待っているスレッドを同じスレッドに戻したいのであれば、それは事実上「同期的な」振る舞いです。うーん...はい、そうだね。 *一口*。私は正直言って、このもので少し失われています。 –