0

VSTO を使用して、約 3000 のタスクを MS Project に追加しています。問題は、追加が非常に遅く、約 28 ~ 30 分 (場合によってはそれ以上) かかることです。

Globals.ThisAddin.Application.ScreenUpdating = false; を使用して画面の更新を無効にしています。

この問題に対する既知の回避策はありますか、それとも VSTO の単なる制限ですか?

4

2 に答える 2

1
  1. Project 2010 は、Project 2007 よりも COM で高速に動作します
  2. 自動計算を無効にする: Application.Calculation を PjCalculation.pjManual に設定します。
  3. ガント チャートを非表示 - 画面上にグリッドのみを表示
  4. 不要になったインターフェイス オブジェクトに対して Marshal.ReleaseComObject を呼び出します
于 2012-12-19T06:25:25.633 に答える
0

これは、私が Project 2007 で経験したことです。もちろん、あなたの経験は異なる場合があります :)

  1. 自動計算を無効にしても、それほど多くの利点が得られず、さらに計算の精度が損なわれる可能性があることがわかりました。

  2. UndoTransactions を使用している場合は、使用しないでください。これは、処理時間とメモリ使用量の両方でパフォーマンスに大きな影響を与えます。

  3. ScreenUpdating を呼び出すとパフォーマンスが向上しますが、タスクを処理する前に毎回呼び出す必要があります。

  4. また、非常に奇妙な追加のヒント。MS Project ウィンドウのタイトル バーまたはタスクの処理に使用しているダイアログのタイトル バーをつかんでみてください。インポートは何倍も速くなります。

于 2013-02-20T10:27:39.473 に答える