2
CurlFile()が呼び出されるたびに、ProcessObjectクラスから新しいオブジェクトが作成されます。 ProcessObjectオブジェクトは、新しいプロセスを開始します。親クラスの静的イベントハンドラをトリガする各オブジェクトのProcess.Exitイベントが必要ですが、何らかの理由で機能していないようです。親クラスの静的イベントハンドラがネストされたクラスのProcess.Exitedからトリガされない
class Curl
{
StringContainer oStrings = new StringContainer();
private static int _counter = 0;
private string _curl;
public Curl()
{
//oStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
_curl = oStrings.Curl;
}
public void CurlFile(string _arg)
{
ProcessObject oProcessObject = new ProcessObject(_arg, _curl);
}
private static void oProcess_Exited(object sender, EventArgs e)
{
_counter++;
if (_counter == 1000)
{
MessageBox.Show("here");
}
}
private class ProcessObject
{
ProcessStartInfo oStartInfo = new ProcessStartInfo();
Process oProcess = new Process();
public ProcessObject(string _arg, string _curl)
{
oStartInfo.FileName = _curl;
oStartInfo.Arguments = _arg;
oProcess.EnableRaisingEvents = true;
oProcess.Exited += new EventHandler(oProcess_Exited);
oProcess = Process.Start(oStartInfo);
}
}
}
ガベージコレクタによってオブジェクトが収集されています。また、デザイン、ああ... – Will