共用方式為


C26130

警告 C26130: 遺漏在函式的附註,<func>的 _Requires_lock_held_ (<lock>) 或 _No_competing_thread_。 否則它可以是競爭情形。 變數<var> 應該被鎖定 <lock>所保護。

警告 C26130 ,這些分析器會偵測可能的競爭情形,但如函式可以在單一執行緒的模式,當函式進入根據某些啟發學習法 (Heuristic) 時的初始化階段。

範例

在下列範例中,C26130 警告會因為 _Guarded_by_ 成員進行修改而不用鎖定 。

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
        _Guarded_by_(cs) int data;
    } DATA;

    void Init(DATA* p) 
    {
        p->data = 0; // Warning C26130
    }

如果前述程式碼在單一執行緒模式保證管理,您可以使用 _No_competing_thread_,如下列範例所示,請加註函式。

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
        _Guarded_by_(cs) int data;
    } DATA;

    _No_competing_thread_ void Init(DATA* p) 
    {
        p->data = 0; // Warning C26130 will be resolved
    }

或者,您也可以使用 _No_competing_thread_begin_ 和 _No_competing_thread_end_,可以加註程式碼片段,如下所示。

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
        _Guarded_by_(cs) int data;
    } DATA;

    void Init(DATA* p) 
    {
        _No_competing_thread_begin_
        p->data = 0; // Warning C26130 will be resolved
        _No_competing_thread_end_
    }