Condividi tramite


AnnotationStore.Flush Metodo

Definizione

Forza la scrittura nel dispositivo di archiviazione sottostante dei dati di annotazione mantenuti nei buffer interni.

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

Eccezioni

Dispose è stato chiamato nell'archivio.

Esempio

Nell'esempio seguente viene illustrato come usare il Flush metodo quando l'applicazione chiude .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

Nell'esempio seguente viene illustrato l'uso DeleteAnnotation dei metodi e 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();
}

Commenti

Le applicazioni che usano un modello di salvataggio esplicito possono essere impostate AutoFlush false su e chiamare Flush direttamente quando appropriato.

Le applicazioni che usano un modello di salvataggio implicito possono impostare su AutoFlush per true fare in modo Flush che venga chiamato automaticamente dopo ogni operazione di archiviazione (aggiunta, eliminazione o modifica).

Si applica a

Vedi anche