Cer Cer Cer Cer Enum

Definizione

Specifica un comportamento per il metodo chiamato all'interno di un'area a esecuzione vincolata (CER, Constrained Execution Region).Specifies a method's behavior when called within a constrained execution region.

public enum class Cer
[System.Serializable]
public enum Cer
type Cer = 
Public Enum Cer
Ereditarietà
Attributi

Campi

MayFail MayFail MayFail MayFail 1

In condizioni eccezionali, il metodo può avere esito negativo.In the face of exceptional conditions, the method might fail. In tal caso, il metodo segnalerà al metodo chiamante l'esito positivo o negativo.In this case, the method will report back to the calling method whether it succeeded or failed. È necessaria la presenza di una CER attorno al corpo del metodo per consentire al metodo di fornire il valore restituito.The method must have a CER around the method body to ensure that it can report the return value.

None None None None 0

Il metodo, il tipo o l'assembly non è a conoscenza di una CER.The method, type, or assembly has no concept of a CER. Non usufruisce dei vantaggi delle garanzie di un'area a esecuzione vincolata.It does not take advantage of CER guarantees. Questo implica quanto segue:This implies the following:

Success Success Success Success 2

In condizioni eccezionali, è garantito l'esito positivo del metodo.In the face of exceptional conditions, the method is guaranteed to succeed. È sempre necessario costruire una CER attorno al metodo chiamato, anche quando viene chiamato dall'interno di un'area non CER.You should always construct a CER around the method that is called, even when it is called from within a non-CER region. Un metodo ha esito positivo se esegue le azioni previste.A method is successful if it accomplishes what is intended. Ad esempio, contrassegnare Count con ReliabilityContractAttribute(Cer.Success) implica che quando viene eseguito in una CER, restituisce sempre il conteggio del numero di elementi in ArrayList e non può mai lasciare i campi interni in uno stato indeterminato.For example, marking Count with ReliabilityContractAttribute(Cer.Success) implies that when it is run under a CER, it always returns a count of the number of elements in the ArrayList and it can never leave the internal fields in an undetermined state.

Esempi

Esempio di codice seguente viene illustrato l'utilizzo del Cer quando si specifica un'area a esecuzione vincolata per un metodo di enumerazione.The following code example demonstrates the use of the Cer enumeration when specifying a constrained execution region for a method. Questo esempio di codice è parte di un esempio più esaustivo disponibile per il ReliabilityContractAttribute costruttore.This code example is part of a larger example provided for the ReliabilityContractAttribute constructor.

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImpl(MethodImplOptions.NoInlining)]
void StackDepth2()
{
    try
    {
        consistentLevel2 = false;
        if (depth == 2)
            Thread.Sleep(-1);
        StackDepth3();
    }
    finally
    {
        consistentLevel2 = true;
    }
}
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)>
<MethodImpl(MethodImplOptions.NoInlining)>
Sub StackDepth2()
   Try
      consistentLevel2 = False
      If depth = 2 Then Thread.Sleep(-1)
      StackDepth3()
   Finally
      consistentLevel2 = True
   End Try
End Sub

Commenti

Il Cer enumerazione specifica il comportamento di un metodo, tipo o assembly all'interno di un'area a esecuzione vincolata (CER).The Cer enumeration specifies the behavior of a method, type, or assembly within a constrained execution region (CER). Usare uno dei tre valori disponibili per indicare che l'entità avranno esito positivo, non è a conoscenza di una CER, o (in modo deterministico) potrebbe essere in grado di segnalare l'esito positivo o negativo.Use one of the three available values to indicate that the entity will succeed, has no knowledge of a CER, or might (deterministically) be able to report success or failure.

Una CER garantisce che l'area di codice verrà eseguito senza interruzioni anche se viene generata un'eccezione asincrona, ad esempio un'eccezione di memoria insufficiente di thread interrotto, o un overflow dello stack.A CER provides guarantees that the region of code will execute uninterrupted even if an asynchronous exception such as an aborted thread out-of-memory exception, or stack overflow is raised.

Si applica a

Vedi anche