一部のクライアント マシンでは、このSystem.ComponentModel.Win32Exception: The operation completed successfully というエラーが発生します。これは、明らかにリソースのリークまたはプロセスあたり 10000 ハンドルのハード リミットに達していることを示しています。
コードを調べてリファクタリングしていますが、ウィンドウを作成するために使用しているパターンは(簡略化されています)
class MyForm : Form
{
public MyForm()
{
InitializeComponents()
}
//windows generated code
public void InitializeComponents()
{
myButton = new System.Windows.Forms.Button();
myButton.Click += new System.EventHandler(myButton1_Click);
}
private void button1_Click(object sender, EventArgs e)
{
Dispose();
}
}
//this will be called many times throughout the programs lifecycle
Form myForm = new Form()
myForm.ShowDialog();
ウィンドウが表示されるたびにボタンを再構築すると (実際には多数のコンポーネントがあります)、ハンドルで問題が発生する可能性がありますか? dispose は意味がないと思っていましたが、問題を引き起こしている可能性のある他のコード セクションを見つけるのに苦労しています。