2

スタック オーバーフローを引き起こした WCF Web アプリケーション (W2K3 IIS) のバグを追跡してきました。

これを修正するには、割り当てたいメモリ量を持つスレッドを作成して、アプリケーションのスタックを増やす必要がありました。

しかし、子スレッドはどうなるでしょうか。私のアプリは多くのスレッドを作成します。それらは値を継承しますか?それともすべてのスレッドに新しい値を設定する必要がありますか?

編集: (WCF) サービスをコンソール ホストとして実行すると、問題なく動作します。また、(EDITBIN を使用して) w3wp.exe のスタックを変更すると、IIS でも正常に動作します。
だから私はスタックを増やす必要があります。スタック サイズでスレッドを作成できることはわかっていますが (別の方法はありますか?)、子スレッドがどうなるかを知る必要があります。

Edit2: スタック オーバーフローを引き起こすいくつかの BIG ベクトルを定義する必要があります。したがって、これはシステムのバグではありません。スタックを増やす必要がある (持っている)

4

2 に答える 2

2

自分で試した後、私はそう言うことができます!子スレッドは、親スレッドに設定されたスタックの量を保持します。

于 2009-03-03T02:43:39.167 に答える
1

単にメモリを割り当てるのではなく、なぜスタック オーバーフローが発生するのかをもっと注意深く考える必要があるようです。

大量のローカル変数またはスタック上にある配列を持つ関数はありますか?

不注意な再帰ループでどこかでリークしていませんか?

-アダム

于 2009-02-27T15:31:58.463 に答える