我有一个对象,它服务于多个请求(线程)...思考跨多个线程的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