InkAnalyzer.Reconcile, méthode
Mise à jour : November 2007
Exécute le rapprochement de InkAnalyzer.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink.Analysis (dans Microsoft.Ink.Analysis.dll)
Syntaxe
'Déclaration
Public Sub Reconcile
'Utilisation
Dim instance As InkAnalyzer
instance.Reconcile()
public void Reconcile()
public:
void Reconcile()
public void Reconcile()
public function Reconcile()
Notes
Par défaut, le rapprochement se produit automatiquement juste avant le déclenchement des événements IntermediateResultsUpdated ou ResultsUpdated. Toutefois, les utilisateurs souhaitant contrôler le moment auquel le rapprochement se produit peuvent désactiver AutomaticReconciliationEnabled en définissant la propriété AnalysisModes appropriée. Après la désactivation, les utilisateurs devront s'inscrire pour l'événement ReadyToReconcile. Lorsque l'événement ReadyToReconcile est déclenché, les utilisateurs doivent appeler cette méthode de rapprochement ou la méthode de rapprochement transactionnelle (dans ou en dehors de la gestion de l'événement ReadyToReconcile ) pour terminer ou poursuivre l'opération d'analyse.
La méthode de rapprochement sert à déterminer les portions des résultats d'analyse qui ont été modifiées pendant l'exécution en arrière-plan de l'opération d'analyse. Étant donné que l'opération d'analyse s'exécute sur le thread d'arrière-plan, il est possible que des modifications aient été apportées aux ContextNodes (suppression de trait, déplacement de trait, etc.) et aient invalidé les résultats calculés en arrière-plan. Le rapprochement identifie simplement les nœuds de contexte mis à jour par l'application et par l'opération d'analyse (cette opération est appelée collision). L'application passe au ContextNodeCollection référencé par la propriété RootNode, les résultats d'analyse restants et en conflit ne sont pas mis à jour dans cette collection. Les régions des collisions sont automatiquement ajoutées à la propriété DirtyRegion afin de garantir l'analyse de ces zones à la prochaine exécution.
L'événement est déclenché uniquement si la méthode BackgroundAnalyze est utilisée pour appeler l'opération d'analyse.
La multiplication de cet appel de surcharge de rapprochement ne déclenche pas d'exceptions, mais celui-ci échoue silencieusement.
L'appel à cette surcharge de rapprochement après un rapprochement transactionnel (limité dans le temps) continue à partir du point de la liste de modifications auquel la dernière transaction s'est terminée et se poursuit jusqu'à exécution de l'ensemble de la liste de modifications.
Exemples
L'exemple suivant définit une méthode, theInkAnalyzerBase_ReadyToReconcile, qui gère l'événement ReadyToReconcile d'un InkAnalyzer. Si la valeur booléenne abortAnalysis est définie, theInkAnalyzerBase_ReadyToReconcile abandonne l'analyse. Sinon, le rapprochement manuel est effectué et l'analyse continue.
''' <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();
}
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0