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