2

私は10以上のスレッドを作成するWindowsサービスを持っています:

  • ジョブを実行してから、再開されるまで WaitForMultipleObjects 状態に入ります..
  • 各スレッドは、その AppServer で TDCOMConnection コンポーネント呼び出しメソッドを作成し、接続を閉じます

サービスは問題なく動作しますが、メモリ リークの問題が発生しています。

その問題がメッセージのポンピングに関連している可能性があるかどうか、私はただ興味があります.

STA スレッドでのメッセージ ポンピングは、com マーシャリングを使用する場合にのみ適用する必要があると常に考えていました (2 つのスレッド間にプロキシがある状況で)。

しかし、今日、電話をブロックする場合はメッセージを処理する必要があることをどこかで読みました。本当?

ただし、私のアプリケーションは引き続き正しく機能し、それ自体をブロックしません...

たぶん、WaitForMultipleObjects の代わりに CoWaitForMultipleHandles を使用する必要がありますか?

この問題について何か考えはありますか?

4

1 に答える 1

2

CoWaitForMultipleHandlesではなくWaitForMultipleObjectsを使用すると、メモリリークが発生するとは思わない。どの機能を使用するかは実際にはあなた次第ですが、リークするかどうかに影響を与えることはありません。

これを解決するには、リークに関する詳細な診断を取得する必要があると思います。

于 2011-03-21T12:18:18.627 に答える