次の方法で共有


問題 : ワークフロー ドキュメントを開くために必要な時間が長すぎる

ワークフロー デザイナは、現在のプロジェクトのソース コード解析を利用して、ワークフロー デザイン サーフェイスや Intellisense ダイアログのルールなど、さまざなま場所で更新されるデザイン情報を提供します。これにより、ワークフロー デザイナを使用して、プロジェクトを再ビルドする前にソース コードの変更を反映できるようになります。

デザイナのパフォーマンスを向上させるためのヒント

次のヒントを使用してワークフロー デザイナのパフォーマンスを向上させることができます。

ヒント 説明

ワークフローで使用するすべての種類を、ワークフローが実行されている場所とは別のプロジェクトに移動します。

すべてのインターフェイス、イベントの種類、カスタム アクティビティ、およびヘルパー クラスを再解析して、プロジェクト内のワークフローを変更するたびにデザイン時の型情報を更新します。たとえば、10 個の各プロジェクトに 10 個のワークフローがある、10 個の関連するイベントの種類を含んだソリューションについて考えた場合、イベントの種類を 1 つのプロジェクトだけに移動すると、パフォーマンスを向上させることができます。

プロジェクトのワークフローの数を削減します。

各ワークフローは、デザイン時の型の作成が必要な型です (C# と Visual Basic の場合は直接的、XAML の場合は間接的)。したがって、1 つのプロジェクトに 10 個のワークフローがある場合、任意のワークフローを初めて開くと、他のワークフローもすべて解析されるということになります。関数に基づいてこれらのワークフローを分類し、プロジェクトあたり 2 ~ 3 個のワークフローにグループ化すると、パフォーマンスが大幅に向上します。

大規模なステート マシンのワークフローを小規模のワークフローにリファクタリングします。

ステート マシンを小規模の再利用可能なワークフローにファクタリングすると、冗長な状態の数が減ってデザイナのパフォーマンスが向上します。

アクティビティのコンストラクタ内に長時間実行される作業を格納しないようにします。

アクティビティのコンストラクタをデザイン時に呼び出すため、データベースへの接続など、長時間実行される作業項目をコンストラクタに格納すると、デザイナはワークフロー ドキュメントを開くのに長時間かかる可能性があります。

関連項目

概念

Windows Workflow Foundation のトラブルシューティング

Copyright © 2007 by Microsoft Corporation. All rights reserved.