上条笔记说的内存共享冲突后,可以使用锁来解决
通过锁住对象内存,只能允许同一时间只有一个线程可以访问,其他想要访问的线程排队等待
static void CallFunc(object obj) {
Class1 o = obj as Class1;
lock (o) {
while (true) {
o.Cooo();
}
}
}使用lock关键字,申请o对象的内存访问,如果没有线程在访问,则锁住对象,进行里面的代码。如果对象已经被锁了,那么排队等待。