Freigeben über


InkAnalyzer.Reconcile-Methode

Führt den Abgleich von InkAnalyzer aus.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Syntax

'Declaration
Public Sub Reconcile
'Usage
Dim instance As InkAnalyzer

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

Hinweise

Standardmäßig erfolgt der Abgleich automatisch unmittelbar vor dem Auslösen des IntermediateResultsUpdated-Ereignisses oder ResultsUpdated-Ereignisses. Benutzer, die den Zeitpunkt des Abgleichs bestimmen möchten, können jedoch AutomaticReconciliationEnabled deaktivieren, indem sie die entsprechenden AnalysisModes festlegen. Nach der Deaktivierung müssen sich die Benutzer für das ReadyToReconcile-Ereignis anmelden. Wenn das ReadyToReconcile-Ereignis ausgelöst wird, müssen die Benutzer entweder diese Abgleichmethode oder die Transaktionsabgleichsmethode aufrufen (entweder innerhalb oder außerhalb der Behandlung des ReadyToReconcile-Ereignisses), damit der Analysevorgang abgeschlossen oder fortgeführt werden kann.

Mit der Abgleichmethode wird bestimmt, welche Teile der Analyseergebnisse sich während des Hintergrundanalysevorgangs geändert haben. Während des Analysevorgangs im Hintergrundthread wurden möglicherweise Änderungen an den ContextNodes vorgenommen (Löschen eines Strichs, Verschieben eines Strichs usw.), durch die die im Hintergrund berechneten Ergebnisse ungültig werden. Der einfache Abgleich identifiziert die Kontextknoten, die sowohl von der Anwendung als auch dem Analysevorgang aktualisiert wurden (was als Konflikt bezeichnet wird). Anwendungsänderungen der ContextNodeCollection, auf die die RootNode-Eigenschaft verweist, bleiben unverändert, und in Konflikt stehende Analyseergebnisse werden in der Auflistung nicht aktualisiert. Die Konfliktbereiche werden automatisch der DirtyRegion-Eigenschaft hinzugefügt, um sicherzustellen, dass diese Bereiche bei der nächsten Ausführung analysiert werden.

Das Ereignis wird nur ausgelöst, wenn die BackgroundAnalyze-Methode verwendet wird, um den Analysevorgang aufzurufen.

Bei mehrmaligem Aufrufen dieser Abgleichsüberladung werden keine Ausnahmen ausgelöst. Die Vorgänge schlagen ohne Warnung fehl.

Bei Aufrufen dieser Abgleichsüberladung nach einem Transaktionsabgleich (der ein Zeitlimit aufweist) wird der Vorgang an dem Punkt in der Änderungsliste fortgesetzt, an dem die letzte Transaktion abgeschlossen war, und ausgeführt, bis die gesamte Änderungsliste abgearbeitet wurde.

Beispiele

Im folgenden Beispiel wird die theInkAnalyzerBase_ReadyToReconcile-Methode definiert, die das ReadyToReconcile-Ereignis eines InkAnalyzer behandelt. Wenn der boolesche Wert abortAnalysis festgelegt wird, wird der Analysevorgang von theInkAnalyzerBase_ReadyToReconcile abgebrochen. Andernfalls wird ein manueller Abgleich ausgeführt und der Analysevorgang fortgesetzt.

''' <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 theInkAnalyzer_ReadyToReconcile( _
ByVal sender As Object, _
ByVal e As EventArgs)
    ' The source is an InkAnalyzerBase.
    Dim theInkAnalyzerBase As Microsoft.Ink.InkAnalyzer = _
        DirectCast(sender, Microsoft.Ink.InkAnalyzer)

    ' 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 Microsoft.Ink.AnalysisRegion = _
            theInkAnalyzerBase.Abort()
        theInkAnalyzerBase.DirtyRegion.Union(unanalyzedRegion)
    Else
        ' Manually reconcile the analysis results for this analysis phase.
        theInkAnalyzerBase.Reconcile()
    End If

End Sub 'theInkAnalyzer_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 theInkAnalyzer_ReadyToReconcile(object sender, EventArgs e)
{
    // The source is an InkAnalyzer.
    Microsoft.Ink.InkAnalyzer theInkAnalyzerBase =
        sender as Microsoft.Ink.InkAnalyzer;

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

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

InkAnalyzer-Klasse

InkAnalyzer-Member

Reconcile-Überladung

Microsoft.Ink-Namespace