Condividi tramite


Metodo InkAnalyzer.Reconcile

Aggiornamento: novembre 2007

Esegue la risoluzione delle differenze di InkAnalyzer.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Sintassi

'Dichiarazione
Public Sub Reconcile
'Utilizzo
Dim instance As InkAnalyzer

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

Note

Per impostazione predefinita, la risoluzione delle differenze si verifica in modo automatico immediatamente prima della generazione degli eventi IntermediateResultsUpdated o ResultsUpdated. Tuttavia, gli utenti che desiderano controllare quando si verifica la risoluzione delle differenze possono disattivare l'oggetto AutomaticReconciliationEnabled impostando l'oggetto AnalysisModes appropriato. Una volta disattivato, gli utenti dovranno registrare l'evento ReadyToReconcile. Quando l'evento ReadyToReconcile viene generato, gli utenti devono chiamare questo metodo di risoluzione delle differenze oppure il metodo di risoluzione delle differenze transazionale (all'interno o all'esterno della gestione dell'evento ReadyToReconcile) per completare o continuare l'operazione di analisi.

Il metodo di risoluzione delle differenze viene utilizzato per determinare le parti dei risultati dell'analisi modificate durante l'operazione di analisi in background. Dal momento che l'operazione di analisi avviene nel thread in background, le modifiche possono essere apportate agli oggetti ContextNode (eliminazione di tratti, spostamento di tratti, ecc.) che invalidano i risultati calcolati in background. La risoluzione delle differenze identifica semplicemente i nodi di contesto aggiornati dall'applicazione e dall'operazione di analisi (definita conflitto). Le modifiche dell'applicazione all'oggetto ContextNodeCollection a cui la proprietà RootNode fa riferimento rimangono mentre i risultati dell'analisi in conflitto non vengono aggiornati in quell'insieme. Le aree dei conflitti vengono aggiunte automaticamente alla proprietà DirtyRegion per garantire che queste aree vengano analizzate con la successiva esecuzione.

L'evento è generato solo se viene utilizzato il metodo BackgroundAnalyze per richiamare l'operazione di analisi.

Se si chiama più volte questo overload di risoluzione delle differenze non verranno generate eccezioni, ma l'operazione non verrà completata.

La chiamata di questo overload di risoluzione delle differenze dopo una risoluzione delle differenze transazionale (che ha un limite di tempo) continuerà dal punto nell'elenco modifiche in cui è terminata l'ultima transazione e verrà eseguita fino a quando non è stato eseguito l'intero elenco modifiche.

Esempi

Nell'esempio seguente viene definito un metodo, theInkAnalyzerBase_ReadyToReconcile, che gestisce l'evento ReadyToReconcile di un oggetto InkAnalyzer. Se viene impostato il valore booleano abortAnalysis, theInkAnalyzerBase_ReadyToReconcile interrompe l'operazione di analisi. In caso contrario, esegue la risoluzione delle differenze manuale e continua con l'operazione di analisi.

''' <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();
    }
}

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

InkAnalyzer Classe

Membri InkAnalyzer

Overload Reconcile

Spazio dei nomi Microsoft.Ink