AnnotationStore.Flush 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
強制將保留在內部緩衝區中的任何註解資料,寫入基礎儲存裝置。
public:
abstract void Flush();
public abstract void Flush ();
abstract member Flush : unit -> unit
Public MustOverride Sub Flush ()
例外狀況
已在存放區中呼叫 Dispose。
範例
下列範例示範當應用程式關閉 AnnotationService 時,如何使用 Flush 方法。
// -------------------------- 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
下列範例示範 如何使用 DeleteAnnotation 和 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();
}
備註
使用明確儲存模型的應用程式可以適當地設定 AutoFlush 為 false
,並直接呼叫 Flush 。
使用隱含儲存模型的應用程式可以將 設定 AutoFlush true
為 ,以 Flush 在每個存放區作業 (新增、刪除或修改) 之後自動呼叫。