上条笔记说的内存共享冲突后,可以使用锁来解决

通过锁住对象内存,只能允许同一时间只有一个线程可以访问,其他想要访问的线程排队等待

static void CallFunc(object obj) {
    Class1 o = obj as Class1;
    lock (o) {
        while (true) {
            o.Cooo();
        }
    }
}

使用lock关键字,申请o对象的内存访问,如果没有线程在访问,则锁住对象,进行里面的代码。如果对象已经被锁了,那么排队等待。


首页 我的博客
粤ICP备17103704号