Freigeben über


InkAnalyzer.Reconcile-Methode

Gleicht Teile der Analyseergebnisse ab, die während der Freihandanalyse im Hintergrund geändert wurden.

Namespace:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.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

Die Abgleichmethode ermittelt, welche Teile der Analyseergebnisse während der Hintergrundanalyse geändert wurden. Während des Analysevorgangs im Hintergrundthread wurden möglicherweise Änderungen an den ContextNode-Objekten vorgenommen (z. B. Löschen eines Strichs, Verschieben eines Strichs), durch die die berechneten Ergebnisse ungültig werden.

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

Die Reconcile-Methode identifiziert die Kontextknoten, die sowohl von der Anwendung als auch dem Analysevorgang aktualisiert wurden (was als Konflikt bezeichnet wird). Anwendungsänderungen, die an der ContextNodeCollection vorgenommen werden, auf die von der RootNode-Eigenschaft verwiesen wird, werden beibehalten. Konfliktierende Analyseergebnisse werden nicht aktualisiert, um die Auflistung beizubehalten. Die Konfliktbereiche werden automatisch der DirtyRegion-Eigenschaft hinzugefügt, um sicherzustellen, dass diese Bereich erneut analysiert werden.

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

Bei mehrmaligem Aufrufen der Reconcile() werden keine Ausnahmen ausgelöst. Die Vorgänge schlagen ohne Warnung fehl.

Bei Aufrufen dieser Reconcile()-Überladung nach einem Transaktionsabgleich mit Zeitlimit geschieht Folgendes: Die Verarbeitung wird an dem Punkt fortgesetzt, an dem die letzte Transaktion abgeschlossen wurde. Die Verarbeitung wird dann ausgeführt, bis der Abgleich abgeschlossen wurde.

Beispiele

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

Sub theInkAnalyzer_ReadyToReconcile(ByVal sender As Object, ByVal e As EventArgs) 
    MessageBox.Show("ReadyToReconcile")
    ' The source is an InkAnalyzer.
    Dim theInkAnalyzer As InkAnalyzer = CType(sender, 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 AnalysisRegion = theInkAnalyzer.Abort()
        theInkAnalyzer.DirtyRegion.Union(unanalyzedRegion)
    Else
        ' Manually reconcile the analysis results for this analysis phase.
        theInkAnalyzer.Reconcile()
    End If

End Sub 'theInkAnalyzer_ReadyToReconcile
void theInkAnalyzer_ReadyToReconcile(object sender, EventArgs e)
{
    MessageBox.Show("ReadyToReconcile");
    // The source is an InkAnalyzer.
    InkAnalyzer theInkAnalyzer = sender as InkAnalyzer;

    // Check whether or not to abort analysis before continuing.
    if (this.abortAnalysis)
    {
        // Abort analysis and update the analyzer's dirty region.
        AnalysisRegion unanalyzedRegion =
            theInkAnalyzer.Abort();
        theInkAnalyzer.DirtyRegion.Union(unanalyzedRegion);
    }
    else
    {
        // Manually reconcile the analysis results for this analysis phase.
        theInkAnalyzer.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

System.Windows.Ink-Namespace