ancora fix IOB-MAN

This commit is contained in:
Samuele E. Locatelli
2020-12-01 11:54:19 +01:00
parent 38b0c67686
commit b351790c78
+46 -21
View File
@@ -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();
}
/// <summary>
/// Apro un child x fare udpate con parametro che impedisca avvio IOB
/// Apro un child x fare update con parametro che impedisca avvio IOB
/// </summary>
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<iobAdapt> allItems = (IList<iobAdapt>)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;
}
}), "");
}