diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs
index 75842b91..2b84f838 100644
--- a/IOB-MAN/IOBManPanel.cs
+++ b/IOB-MAN/IOBManPanel.cs
@@ -174,7 +174,8 @@ namespace IOB_MAN
private void apriChild()
{
// preventivamente CHIUDO TUTTO
- closeAllChild(true);
+ forceKillByName(TargetName);
+ //closeAllChild(true);
Thread.Sleep(250);
// avvio i child
foreach (var item in ArgsList)
@@ -182,7 +183,7 @@ namespace IOB_MAN
startChildProc(item);
}
numProcAvviati = ArgsList.Count;
- numProcRunning = numProcAvviati;
+ updateNumRunning();
}
private void apriChildSel()
@@ -202,11 +203,12 @@ namespace IOB_MAN
}
}
}
+ updateNumRunning();
updateStatus();
}
///
- /// Apro un child x fare udpate con parametro che impedisca avvio IOB
+ /// Apro un child x fare update con parametro che impedisca avvio IOB
///
private void apriOneUpdate()
{
@@ -230,6 +232,7 @@ namespace IOB_MAN
this.Close();
}
}
+ updateNumRunning();
}
private void AutoUpdater_ApplicationExitEvent()
@@ -261,6 +264,7 @@ namespace IOB_MAN
// chiude tutto
closeAllChild(false);
//apriChild();
+ updateNumRunning();
updateStatus();
}
@@ -322,6 +326,7 @@ namespace IOB_MAN
loadConfig();
// apertura
apriChild();
+ updateNumRunning();
updateStatus();
}
@@ -330,6 +335,7 @@ namespace IOB_MAN
// chiude tutto
closeAllChild(true);
apriChild();
+ updateNumRunning();
updateStatus();
}
@@ -364,7 +370,14 @@ namespace IOB_MAN
if (processList.Length > 0)
{
Process p = myGetProcByID(processList, item.pID);
- needRem = p.HasExited;
+ if (p != null)
+ {
+ needRem = p.HasExited;
+ }
+ else
+ {
+ needRem = true;
+ }
}
else
{
@@ -382,7 +395,6 @@ namespace IOB_MAN
item2rem.Add(item);
}
item.isRunning = false;
- numProcRunning--;
}
else
{
@@ -433,10 +445,6 @@ namespace IOB_MAN
IList allItems = (IList)ElencoIOB.List;
bool needRem = false;
-#if false
- numProcRunning = numProcAvviati;
-#endif
-
// 2020.02.01 passato chiamata specifica x leggere in 1 sola volta TUTTO elenco processi (x nome)...
Process[] processList = Process.GetProcessesByName(TargetName);
@@ -489,6 +497,7 @@ namespace IOB_MAN
}
}
}
+ updateNumRunning();
updateStatus();
}
@@ -496,6 +505,8 @@ namespace IOB_MAN
{
// se tolgo autorestart --> imposto NUOVA scadenza x forzare check
tOutAutocheck = 60 * utils.CRI("autoRestartTimeoutMin") * (1000 / (utils.CRI("checkPeriod")));
+ txtTOutAutoCheck.Visible = !chkAutoRestart.Checked;
+ btnMoreTOut.Visible = !chkAutoRestart.Checked;
// fa subito controllo riavvio...
processAutoRestart();
}
@@ -579,6 +590,7 @@ namespace IOB_MAN
}
catch
{ }
+ updateNumRunning();
}
private void closeTimers()
@@ -722,11 +734,11 @@ namespace IOB_MAN
private void ElencoIOB_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
- //updateStatus();
}
private void ElencoIOB_ListChanged(object sender, System.ComponentModel.ListChangedEventArgs e)
{
+ updateNumRunning();
}
private void forceCheckTimer_Tick(object sender, EventArgs e)
@@ -1127,7 +1139,6 @@ namespace IOB_MAN
{
ElencoIOB.Insert(indice, newIob);
}
- numProcRunning++;
utils.lgInfo($"Avviato child process per {procArg} | pid: {p.Id}");
}
@@ -1163,6 +1174,21 @@ namespace IOB_MAN
apriOneUpdate();
}
+ private void updateNumRunning()
+ {
+ // ricalcolo running...
+ numProcRunning = 0;
+ // ciclo su row selezionate
+ foreach (DataGridViewRow riga in dgvManagedItems.Rows)
+ {
+ // verifico che sia già chiuso...
+ if (((iobAdapt)ElencoIOB[riga.Index]).isRunning)
+ {
+ numProcRunning++;
+ }
+ }
+ }
+
private async Task updateProgBarAsync()
{
await Task.Run(() => performBarAdvance()).ConfigureAwait(false);
@@ -1196,31 +1222,30 @@ namespace IOB_MAN
tsslNumProc.ForeColor = Color.OrangeRed;
hlRestart = true;
}
+ // se NON checked aggiorno contatore...
+ if (!chkAutoRestart.Checked)
+ {
+ tOutAutocheck--;
+ txtTOutAutoCheck.Text = $"{(tOutAutocheck / (1000 / (utils.CRI("checkPeriod"))))}";
+ }
// se è variato...
if (hlRestart != lastHlRestart)
{
+ tOutAutocheck = 60 * utils.CRI("autoRestartTimeoutMin") * (1000 / (utils.CRI("checkPeriod")));
lastHlRestart = hlRestart;
// fix autorestart...
if (hlRestart)
{
chkAutoRestart.ForeColor = System.Drawing.Color.Red;
chkAutoRestart.Text = "Auto Restart!!!";
- txtTOutAutoCheck.Visible = true;
- btnMoreTOut.Visible = true;
- // se NON checked aggiorno contatore...
- if (!chkAutoRestart.Checked)
- {
- tOutAutocheck--;
- txtTOutAutoCheck.Text = $"{(tOutAutocheck / (1000 / (utils.CRI("checkPeriod"))))}";
- }
}
else
{
chkAutoRestart.ForeColor = DefaultForeColor;
chkAutoRestart.Text = "Auto Restart";
- txtTOutAutoCheck.Visible = false;
- btnMoreTOut.Visible = false;
}
+ txtTOutAutoCheck.Visible = !chkAutoRestart.Checked;
+ btnMoreTOut.Visible = !chkAutoRestart.Checked;
}
}), "");
}