Compartir a través de


AnnotationStore.Flush Método

Definición

Fuerza a que cualquier dato de anotación retenido en búferes internos se escriba en el dispositivo de almacenamiento subyacente.

public:
 abstract void Flush();
public abstract void Flush ();
abstract member Flush : unit -> unit
Public MustOverride Sub Flush ()

Excepciones

Dispose se ha llamado en el almacén.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el Flush método cuando la aplicación cierra .AnnotationService

// -------------------------- StopAnnotations -------------------------
/// <summary>
///   Disables annotations processing and hides annotations.</summary>
public void StopAnnotations()
{
    // If the AnnotationStore is active, flush and close it.
    if ( (_annotService != null) && _annotService.IsEnabled )
    {
        _annotService.Store.Flush();
        _annotStream.Flush();
        _annotStream.Close();
    }

    // If the AnnotationService is active, shut it down.
    if (_annotService != null)
    {
        if (_annotService.IsEnabled)
            _annotService.Disable();
        _annotService = null;
    }
}// end:StopAnnotations()
' -------------------------- StopAnnotations -------------------------
''' <summary>
'''   Disables annotations processing and hides annotations.</summary>
Public Sub StopAnnotations()
    ' If the AnnotationStore is active, flush and close it.
    If (_annotService IsNot Nothing) AndAlso _annotService.IsEnabled Then
        _annotService.Store.Flush()
        _annotStream.Flush()
        _annotStream.Close()
    End If

    ' If the AnnotationService is active, shut it down.
    If _annotService IsNot Nothing Then
        If _annotService.IsEnabled Then
            _annotService.Disable()
        End If
        _annotService = Nothing
    End If
End Sub

En el ejemplo siguiente se muestra el uso de los DeleteAnnotation métodos y Flush .

// ------------------------- DeleteMark_Click -------------------------
void DeleteMark_Click(object sender, RoutedEventArgs e)
{
    Annotation ann = ((MenuItem)sender).Tag as Annotation;
    _annStore.DeleteAnnotation(ann.Id);
    _annStore.Flush();

    MenuItem thisMenu = sender as MenuItem;
    ContextMenu parentMenu = thisMenu.Parent as ContextMenu;
    FrameworkElement dObj =
        parentMenu.PlacementTarget as FrameworkElement;
    while (!(dObj is StackPanel))
    {
        dObj = dObj.Parent as FrameworkElement;
    }

    ListBox collection = dObj.Parent as ListBox;
    collection.Items.Remove(dObj);
    Util.FlushDispatcher();
}

Comentarios

Las aplicaciones que usan un modelo de guardado explícito pueden establecerse AutoFlush false en y llamar Flush directamente cuando corresponda.

Las aplicaciones que usan un modelo de guardado implícito pueden establecer en AutoFlush true para Flush que se llame automáticamente después de cada operación de almacén (agregar, eliminar o modificar).

Se aplica a

Consulte también