共用方式為


C26115

警告 C26165: 可能無法釋放<func>函式中的<lock>鎖定 。

在語法上是範圍鎖定的執行緒 取得 和鎖定 C/C++ 程式的發行沒有由語言執行。 函式可以藉由對並行狀態的可預見值的變更產生新的鎖定副作用。 例如,鎖定包裝函式將鎖定獲取數目或鎖定計數,並使用指定的鎖定。

您可以使用 _Acquires_lock_ 或 _Releases_lock_,您也可以分別 Pragma 配置從鎖定的副作用 (Side Effect) 取得或鎖定版本的函式。 如果沒有這種附註,在這種情況下,在它傳回之後,函式預期不會變更任何鎖定計數。 如果取得與釋放不平恆,它們會變為孤立。 當函式採用一個單獨的鎖定時,會產生警告C26115 。

範例

下列範例會產生警告 C26115,因為未加註 _Acquires_lock_的函式來定義失去關聯的鎖定。

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
    } DATA;

    void FailToReleaseLock(int flag, DATA* p) 
    {
        EnterCriticalSection(&p->cs); 

        if (flag)
            return; // Warning C26115

        LeaveCriticalSection(&p->cs);
    }