Integration 2.2b2 :

- corretta gestione processi per il caso in cui uno va in crash.
This commit is contained in:
Dario Sassi
2020-02-19 10:18:45 +00:00
parent 9b18d02eb5
commit 593d9f577d
2 changed files with 23 additions and 5 deletions
+21 -3
View File
@@ -248,8 +248,8 @@ namespace ib.essetre.integration.egaltech
vProc[j].nBar = -1 ;
nActProc -- ;
}
// altrimenti
else {
// se superato il numero di processi eseguibili in parallelo
else if ( vProc[j].Proc.ExitCode == 1) {
// aggiungo il pezzo in coda
if ( numBars + nShiftBar < numBars + nMaxThread) {
vBar[numBars + nShiftBar] = vBar[vProc[j].nBar] ;
@@ -260,6 +260,14 @@ namespace ib.essetre.integration.egaltech
vProc[j].nBar = -1 ;
nActProc -- ;
}
// altrimenti (errore generico di esecuzione)
else {
// salvo il risultato
ProcessResults( vBar[vProc[j].nBar].sBtlPath, vBar[vProc[j].nBar].piInfo, parameters.UIMode) ;
bDone = true ;
vProc[j].nBar = -1 ;
nActProc -- ;
}
}
else
vProc[j].Proc.Refresh() ;
@@ -275,11 +283,21 @@ namespace ib.essetre.integration.egaltech
ref bCancel);
if ( bCancel ) {
callback.Done( parameters) ; // fine
return;
return ;
}
}
Thread.Sleep( 1) ;
}
// Verifico che i processi non siano andati tutti in errore
bool bAllKO = true ;
for ( int j = 0 ; j < nMaxThread ; ++ j) {
if ( vProc[j].bEnable)
bAllKO = false ;
}
if ( bAllKO) {
MessageBox.Show( "Execution error (all processes are disabled)") ;
break ;
}
Thread.Sleep( 10) ;
}
@@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.2.2.1")]
[assembly: AssemblyFileVersion("2.2.2.1")]
[assembly: AssemblyVersion("2.2.2.2")]
[assembly: AssemblyFileVersion("2.2.2.2")]