InkAnalyzerBase.Reconcile 方法

确定在后台墨迹分析过程中更改了分析结果的哪些部分。

命名空间:  System.Windows.Ink.AnalysisCore
程序集:  IACore(在 IACore.dll 中)

语法

声明
Public Sub Reconcile
用法
Dim instance As InkAnalyzerBase

instance.Reconcile()
public void Reconcile()
public:
void Reconcile()
public void Reconcile()
public function Reconcile()

备注

默认情况下,墨迹分析器在即将引发 IntermediateResultsUpdatedBaseResultsUpdatedBase 事件时执行自动协调。

备注

派生类 InkAnalyzer 在即将引发 IntermediateResultsUpdatedResultsUpdated 事件时执行协调。

若要禁用自动协调,请清除分析器的 AnalysisModes 属性中的 AnalysisModes 标志值 AutomaticReconciliationEnabled。如果禁用了自动协调,且应用程序尚未添加 ReadyToReconcileBase 事件的事件处理程序,则 BackgroundAnalyze 方法将引发异常。只有在应用程序调用 Reconcile 方法之后,墨迹分析器才能继续处理结果或继续对相应分析阶段进行进一步分析。

在后台分析过程中,其他线程可能更改分析器的上下文节点树,例如添加或移除笔画以及更改笔画数据。这类更改可能使后台分析结果的某些部分失效。Reconcile 将分析结果仅应用于在后台分析过程中没有更改的部分的分析器上下文节点树。Reconcile 还将区域添加到分析器的包含失效分析结果的 DirtyRegion 区域。

有关使用 InkAnalyzerBase 分析墨迹的更多信息,请参见Ink Analysis Overview

示例

下面的示例定义 theInkAnalyzerBase_ReadyToReconcile 方法,该方法处理 InkAnalyzerBaseReadyToReconcileBase 事件。如果设置了布尔值 abortAnalysis,则 theInkAnalyzerBase_ReadyToReconcile 中止分析操作。否则,该方法执行手动协调并继续执行分析操作。

''' <summary>
''' Handles the StrokeReparentedBase event of an InkAnalyzerBase.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The event data.</param>
Sub theInkAnalyzerBase_ReadyToReconcile( _
ByVal sender As Object, _
ByVal e As EventArgs)
    ' The source is an InkAnalyzerBase.
    Dim theInkAnalyzerBase As System.Windows.Ink.AnalysisCore.InkAnalyzerBase = _
        DirectCast(sender, System.Windows.Ink.AnalysisCore.InkAnalyzerBase)

    ' Check whether or not to abort analysis before continuing.
    If Me.abortAnalysis Then
        ' Abort analysis and update the analyzer's dirty region.
        Dim unanalyzedRegion As System.Windows.Ink.AnalysisCore.AnalysisRegionBase = _
            theInkAnalyzerBase.Abort()
        theInkAnalyzerBase.DirtyRegion.Union(unanalyzedRegion)
    Else
        ' Manually reconcile the analysis results for this analysis phase.
        theInkAnalyzerBase.Reconcile()
    End If

End Sub 'theInkAnalyzerBase_ReadyToReconcile
/// <summary>
/// Handles the ReadyToReconcile event of an InkAnalyzerBase.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The event data.</param>
void theInkAnalyzerBase_ReadyToReconcile(object sender, EventArgs e)
{
    // The source is an InkAnalyzerBase.
    System.Windows.Ink.AnalysisCore.InkAnalyzerBase theInkAnalyzerBase =
        sender as System.Windows.Ink.AnalysisCore.InkAnalyzerBase;

    // Check whether or not to abort analysis before continuing.
    if (this.abortAnalysis)
    {
        // Abort analysis and update the analyzer's dirty region.
        System.Windows.Ink.AnalysisCore.AnalysisRegionBase unanalyzedRegion =
            theInkAnalyzerBase.Abort();
        theInkAnalyzerBase.DirtyRegion.Union(unanalyzedRegion);
    }
    else
    {
        // Manually reconcile the analysis results for this analysis phase.
        theInkAnalyzerBase.Reconcile();
    }
}

平台

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

InkAnalyzerBase 类

InkAnalyzerBase 成员

Reconcile 重载

System.Windows.Ink.AnalysisCore 命名空间

InkAnalyzerBase.AnalysisModes

InkAnalyzerBase.BackgroundAnalyze

InkAnalyzerBase.ReadyToReconcileBase