     /// 确定了该 UIView.frame 后，装载 Constraint 至 to.ruler.section 中
     // TODO: 参数可变性还是一个问题！
     func setConstraintsFrom(view: UIView) {
-        _fy_layoutQueue {
-            self.constraints.forEach { constraint in
-                if constraint.from == view {
-                    let _from = constraint.from
-                    let _to = constraint.to
-                    let _value = constraint.value
-                    switch constraint.direction {
-                    case .BottomTop:
-                        _to.rulerY.a = _from.frame.origin.y + _from.frame.height + _value
-                    case .TopBottom:
-                        _to.rulerY.c = _from.superview!.frame.height - _from.frame.origin.y + _value
-                    case .RightLeft:
-                        _to.rulerX.a = _from.frame.origin.x + _from.frame.width + _value
-                    case .LeftRigt:
-                        _to.rulerX.c = _from.superview!.frame.width - _from.frame.origin.x + _value
-                    }
-                    self.constraints.remove(constraint)
-                    self.setSettedConstraint(constraint)
-                }
+        assert(NSThread.isMainThread(), "This method should invoke in mainQueue!")
+        constraints.forEach { constraint in
+            if constraint.from == view {
+                let _from = constraint.from
+                let _to = constraint.to
+                let _value = constraint.value
+                switch constraint.direction {
+                case .BottomTop:
+                    _to.rulerY.a = _from.frame.origin.y + _from.frame.height + _value
+                case .TopBottom:
+                    _to.rulerY.c = _from.superview!.frame.height - _from.frame.origin.y + _value
+                case .RightLeft:
+                    _to.rulerX.a = _from.frame.origin.x + _from.frame.width + _value
+                case .LeftRigt:
+                    _to.rulerX.c = _from.superview!.frame.width - _from.frame.origin.x + _value
+                }
+                constraints.remove(constraint)
+                setSettedConstraint(constraint)
             }
         }
     }

        }
    }
    
    // TODO: 这里的 assert 性能还可以提升一下（关于不同的编译模式）
    class func checkCyclingConstraintWith(constraint:Constraint) {
        dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)) {
            singleton.constraints.forEach { con in
                if con <=> constraint {
                    assert(false, "\n⚠️FangYuan: There is a constraint circulation between\n\(con.to)\n🔄\n\(con.from)\n")
                    return;
                }
            }
        }
    }
}



    /// 未设定的约束中，已经没有用来约束 view 的约束了
    func hasSetConstrainTo(view:UIView) -> Bool {
        for con in constraints {
            if con.to == view {
                return false
            }
        }
