InkAnalyzer.Reconcile 方法
协调分析结果中在后台墨迹分析过程中发生更改的部分。
命名空间: System.Windows.Ink
程序集: IAWinFX(在 IAWinFX.dll 中)
语法
声明
Public Sub Reconcile
用法
Dim instance As InkAnalyzer
instance.Reconcile()
public void Reconcile()
public:
void Reconcile()
public void Reconcile()
public function Reconcile()
备注
Reconcile 方法确定在后台分析过程中分析结果的哪些部分发生了更改。由于分析操作是在后台线程上处理的,对 ContextNode 对象的更改(例如笔画删除或笔画移动)可能会使计算失效。
默认情况下,在即将引发 IntermediateResultsUpdated 或 ResultsUpdated 事件时将自动发生协调。但是,如果您希望控制协调发生的时间,请通过设置相应的 AnalysisModes 禁用 AutomaticReconciliationEnabled。一旦禁用,您就需要注册 ReadyToReconcile 事件。引发 ReadyToReconcile 事件时,必须调用此 Reconcile() 方法或事务性 Reconcile(Int64) 方法(在 ReadyToReconcile 事件的处理程序内部或外部调用均可),分析操作才能完成或继续进行。
Reconcile 方法标识应用程序和分析操作都更新的上下文节点(称为“冲突”)。应用程序对 RootNode 属性所引用的 ContextNodeCollection 所做的更改将被保留。为了维护该集合,将不更新有冲突的分析结果。冲突的区域将自动添加到 DirtyRegion 属性以确保可以对这些区域重新进行分析。
仅当 BackgroundAnalyze 方法用于调用分析操作时才引发该事件。
多次调用 Reconcile() 的这一重载不会引发任何异常,但会导致在没有任何通知的情况下失败。
在发生事务性协调(有时间限制)之后,调用 Reconcile() 的这一重载将产生以下结果:处理将从上一个事务结束的点开始继续进行。然后,处理将一直执行到协调完成。
示例
下面的示例定义名为 theInkAnalyzer_ReadyToReconcile 的方法,用以处理 InkAnalyzer 的 ReadyToReconcile 事件。如果设置了布尔值 abortAnalysis,则 theInkAnalyzer_ReadyToReconcile 中止分析操作。否则,该方法执行手动协调并继续执行分析操作。
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();
}
}
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0