当社のチケット システム ベンダーは .NET API ライブラリを提供しており、私はこれをマルチスレッド アプリケーションから利用しようとしています。私はあらゆる種類の接続/ステートフルの問題に遭遇しています.これはおそらく「スレッドセーフ」ではないためだと思います.症状が重なります)。
API にはインスタンス化されたクラスはありません。静的メソッドTrebuchetApi.Api.Connect()
をTrebuchetApi.Api.Login()
その名前空間から呼び出すだけです (実際、すべてのメソッドは静的に見えます)。
そのため、1 つのスレッドが 1 つのことを行い、別のスレッドが別のことを行っている可能性があり、基になる API が混乱しています (設定する必要がある静的変数は null などです)。
各スレッドに API の新しい「インスタンス」を使用させる方法はありますか、それとも単に避けられないのでしょうか?
アップデート:
明確にするために、AppDomains を使用するための提案の後、必要な正確なフレームワークを提供するこの記事を見つけました 。 -c-sharp.aspx