スレッドごとのデータをADO.NETデータサービスに保存したい。スレッド固有の静的変数でThreadStatic属性を使用しても安全ですか、それとも問題が発生しますか?私の懸念は、リクエストが完了してスレッドが終了した後、ThreadStatic変数がガベージコレクションされないことです。
私がやろうとしていることを行うためのより良い方法があれば、私に知らせてください。これは最も単純な解決策のようです。
どんな情報でも非常に役に立ちます、ありがとう!
スレッドごとのデータをADO.NETデータサービスに保存したい。スレッド固有の静的変数でThreadStatic属性を使用しても安全ですか、それとも問題が発生しますか?私の懸念は、リクエストが完了してスレッドが終了した後、ThreadStatic変数がガベージコレクションされないことです。
私がやろうとしていることを行うためのより良い方法があれば、私に知らせてください。これは最も単純な解決策のようです。
どんな情報でも非常に役に立ちます、ありがとう!
各リクエストに対して作成された DataService オブジェクトは、 でマークされたスレッド上にあることがわかりました。そのIsThreadPoolThread = true
ため、この場合、属性を使用する[ThreadStatic]
ことは適切ではありません。前のリクエストの情報が後のリクエストで利用できる可能性があるためです (望ましくありません)。
でタグ付けされた変数にはThreadStatic
、少なくともそれらが作成されたスレッドと同じくらいの寿命があります。スレッドが終了すると、他の値と同様にガベージ コレクションの対象になります。