共用方式為


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 物件 (例如,刪除或移動筆劃) 可能會使計算無效。

根據預設,協調會在引發 IntermediateResultsUpdatedResultsUpdated 事件之前立即自動發生。不過,如果您想要控制發生協調的時間,可以透過設定適當的 AnalysisModes 停用 AutomaticReconciliationEnabled。停用之後,您將需要註冊 ReadyToReconcile 事件。ReadyToReconcile 事件引發時,您必須呼叫這個 Reconcile() 方法或交易 Reconcile(Int64) 方法 (在處理 ReadyToReconcile 事件之內或之外),讓分析作業完成或繼續進行。

Reconcile 方法會識別應用程式和分析作業兩者同時更新的內容節點 (也稱為衝突)。RootNode 屬性所參考 ContextNodeCollection 的應用程式變更會保留下來。衝突分析結果則不會更新以維護集合。衝突區域會自動加入至 DirtyRegion 屬性,確保這些區域會再次分析過。

事件只會在 BackgroundAnalyze 方法用來叫用分析作業時引發。

多次呼叫這個 Reconcile() 的多載不會引發任何例外狀況,但會在沒有通知的情況下失敗。

在交易協調 (有時間限制) 發生之後呼叫這個 Reconcile() 的多載,將會從最後一次交易結束的點開始繼續處理,直到協調完成才會停止。

範例

下列範例會定義名為 theInkAnalyzer_ReadyToReconcile 的方法,該方法可處理 InkAnalyzerReadyToReconcile 事件。如果設定了布林值 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 命名空間