次の方法で共有


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()

解説

調整メソッドは、分析結果の、バックグラウンド分析時に変更された部分を判断します。分析処理は、バックグラウンド スレッドで実行されるため、ContextNode オブジェクトへの変更 (ストロークの削除またはストロークの移動など) により、その計算が無効になる場合があります。

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

Reconcile メソッドでは、アプリケーションと分析処理の両方で更新されている (競合と呼ぶ) コンテキスト ノードを識別します。RootNode プロパティによって参照される ContextNodeCollection に対するアプリケーションの変更は保持されます。競合する分析結果は更新されず、コレクションが保持されます。競合の領域が自動的に DirtyRegion プロパティに追加されるため、確実にこれらの領域は再度分析されます。

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

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

この Reconcile() のオーバーロードを、(時間制限のある) トランザクション調整の実行後に呼び出すと、次のような結果になります。最後のトランザクションが終了した地点から、処理が続行します。その後、処理は調整が完了するまで実行されます。

次の例では、InkAnalyzerReadyToReconcile イベントを処理する theInkAnalyzer_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

参照

参照

InkAnalyzer クラス

InkAnalyzer メンバ

Reconcile オーバーロード

System.Windows.Ink 名前空間