一个简单的线程练习。假设我有一个静态锁、一个 Web 请求和一个线程队列线程。以下是否会导致问题(忽略代码本身的质量):
static object locker = new object();
static MyObject obj = new MyObject();
public static void Update(){
lock(locker){
obj.Foo = "biz";
DoStuff();
}
}
public static void DoStuff(){
ThreadPool.QueueUserWorkItem(args => {
lock(locker){
obj.Foo = "bar";
}
});
}
这个例子是人为的,但这个概念是成立的:)。