我有一個對象,它服務於多個請求(線程)...思考跨多個線程的SqlConnection對象...我可以使用ContextBoundObject創建線程安全對象嗎?
現在,我想創建一個「線程」安全對象,它知道線程上下文其中它是創建的。
所以,如果線程1創建對象foo及線程試圖訪問它....對象foo會忽略它,只有「行爲」,如果線程1正在運行...
威爾ContextBoundObject這樣做呢?如果是的話,它有什麼限制?
僞代碼,你想達到
public class Foo
{
private int _threadId;
public void DoSomething()
{
(if thread.ManagedThreadId != _threadId) return;
// Do some thread safe stuff
}
}
在進入如何做到這一點之前?你能否提供你爲什麼要這樣做的細節?也許有更好的解決方案來實現你正在尋找的東西。 – 2011-03-05 00:51:51
我想這樣做是因爲我想要「線程安全」的實例......包括方法調用和屬性訪問。 我不相信「此對象對於多線程訪問不安全」。 – 2011-03-07 08:05:29