method1、method2の2つのメソッドがあり、両方ともlock(App)を持ち、Appは同じクラスの静的インスタンスです。
アプリは共有プロジェクト ヘルパーの静的インスタンスです
void method1()
{
lock(Helper.App)
{
ExcelApp.FormulaCell.AddComments(errMsg);
}
}
void method2()
{
lock(Helper.App)
{
//plot data (an 2-D array) to cells
var dataRng = ExcelApp.CurrentSheet.Cells(Formulacell.Row + 1, Formulacell.Column + 1);
dataRng = dataRng.get_Resize(n, m);
dataRng.Value2 = data;
}
}
method1、method2 は多くのスレッドから呼び出されます。一度に method1 または method2 のみを実行したい 問題は、そうではないようです。
method1 & method2 で、一部のデータを Excel にプロットすると、例外が発生します
名前: COMException メッセージ: HRESULT からの例外: 0x800AC472
Google で調べたところ、Excel アプリケーションの準備ができていないことが原因で例外が発生していることがわかりました。UI ジェスチャがないため、2 つのメソッドが同時に Excel に書き込もうとしたことが例外の原因であると結論付けました。