Compartilhar via


synchronize

Sincroniza o acesso ao método de destino.

Sintaxe

[synchronize]

Comentários

O atributo synchronize C++ implementa o suporte para sincronizar o método de destino de um objeto. A sincronização permite que vários objetos usem um recurso comum (como um método de uma classe) controlando o acesso do método de destino.

O código inserido por esse atributo chama o método Lock apropriado (determinado pelo modelo de threading) no início do método de destino. Quando o método é encerrado, Unlock é chamado automaticamente. Para saber mais sobre essas funções, confira CComAutoThreadModule::Lock

Esse atributo requer que o atributo coclass, progid ou vi_progid (ou outro atributo que implique um desses) também seja aplicado ao mesmo elemento. Se qualquer atributo único for usado, os outros dois serão aplicados automaticamente. Por exemplo, se progid for aplicado, vi_progid e coclass também serão aplicados.

Exemplo

O código a seguir fornece sincronização para o método UpdateBalance do objeto CMyClass.

// cpp_attr_ref_synchronize.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="SYNC")];

[coclass,
threading(both),
vi_progid("MyProject.MyClass"),
progid("MyProject.MyClass.1"),
uuid("7a7baa0d-59b8-4576-b754-79d07e1d1cc3")
]
class CMyClass {
   float m_nBalance;

   [synchronize]
   void UpdateBalance(float nAdjust) {
      m_nBalance += nAdjust;
   }
};

Requisitos

Contexto do atributo Valor
Aplicável ao Método de classe, método
Repetível Não
Atributos obrigatórios Um ou mais dos seguintes: coclass, progid ou vi_progid.
Atributos inválidos Nenhum

Para obter mais informações sobre os contextos de atributo, confira Contextos de atributo.

Confira também

Atributos de COM