Queue datas; 增加的时候这样 lock(this) // 临界区 { datas.Enqueue(val); } 取的时候 lock(this) // 临界区 { Object val = datas.Dequeue(); }这样就不会乱了。
lock(this){执行方法。}lock里面的任务没有执行完前,所有的操作都是等待。
你其实是要Thread的Resume和Suspend方法吧?这两个方法用起来有点隐患,你要悠着点用,确保程序结构不会碰到那些隐患。