API を使用してサード パーティを呼び出す必要があり、理想的にはそれが返す応答を使用します。API には組み込みの 30 秒のタイムアウトがあり、プログラムで設定することはできません。12秒でタイムアウトする必要があります。これが私が行っている呼び出しです:
string response = theAPI.FunctionA(a, b, c, d);
これを達成し、12 秒でスレッドを中止するには、非同期呼び出しを使用する必要があるかもしれないと考えていました。もう 1 つのスタック オーバーフローの質問は、私が考えていることに近いようです: C# ジェネリック タイムアウトの実装
...これが最善の方法かどうか疑問に思っています。具体的には、何があっても EndInvoke を呼び出すように警告する記事をよく目にしますが、参照されている例のように Abort を実行してもスレッドが適切に閉じられるのでしょうか? Abort の使用について非常に懸念しているコメントがいくつかあったようです。