次の方法で共有


InkAnalyzer.Reconcile メソッド

InkAnalyzer の調整を実行します。

名前空間 :  Microsoft.Ink
アセンブリ :  Microsoft.Ink.Analysis (Microsoft.Ink.Analysis.dll 内)

構文

'宣言
Public Sub Reconcile
'使用
Dim instance As InkAnalyzer

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

解説

既定では、調整は、IntermediateResultsUpdated イベントまたは ResultsUpdated イベントを発生させる直前に自動的に実行されます。ただし、ユーザーが調整の実行を制御する場合、適切な AnalysisModes を設定して、AutomaticReconciliationEnabled を無効にできます。無効にしたら、ユーザーは ReadyToReconcile イベントを登録する必要があります。ReadyToReconcile イベントが発生すると、分析処理を完了するか続行するかによってユーザーは、この調整メソッドまたはトランザクション調整メソッドのいずれかを (ReadyToReconcile イベントの処理の内部または外部のいずれかで) 呼び出す必要があります。

調整メソッドは、分析処理がバックグラウンドで実行されているときに、分析結果の変更された部分を特定するために使用されます。分析処理をバックグラウンド スレッドで実行するとき、バックグラウンドで計算された結果を無効にする変更 (ストロークの削除、移動など) が ContextNode で発生する場合があります。調整では、アプリケーションと分析処理の両方で更新されていた (競合と呼ぶ) コンテキスト ノードを識別するだけです。RootNodeプロパティによって参照される ContextNodeCollection に対するアプリケーションの変更は保持され、競合する分析結果はコレクションに対して更新されません。競合の領域が自動的に DirtyRegion プロパティに追加されるため、次の実行でこれらの領域は確実に分析されます。

イベントは、BackgroundAnalyze メソッドが分析処理の呼び出しに使用される場合にのみ発生します。

この調整のオーバーロードを複数回呼び出しても例外は発生しませんが、この呼び出しは通知されずに失敗します。

この調整のオーバーロードを (時間制限のある) トランザクション調整の後に呼び出すと、最後のトランザクションが終了した変更リストの地点から続行し、変更リスト全体が完了するまで実行します。

次の例では、InkAnalyzerReadyToReconcile イベントを処理する theInkAnalyzerBase_ReadyToReconcile メソッドを定義します。ブール値 abortAnalysis が設定されている場合、theInkAnalyzerBase_ReadyToReconcile は分析処理を中断します。それ以外の場合は、手動調整を実行して、分析処理を続行します。

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

プラットフォーム

Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

InkAnalyzer クラス

InkAnalyzer メンバ

Reconcile オーバーロード

Microsoft.Ink 名前空間