Completato fix check processi + chiusura in blocco
This commit is contained in:
+29
-28
@@ -7,10 +7,6 @@ namespace IOB_MAN
|
||||
{
|
||||
public partial class IOBManPanel : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// Elenco dei processi
|
||||
/// </summary>
|
||||
protected Dictionary<string, iobAdapt> childFormList;
|
||||
/// <summary>
|
||||
/// Binding source degli elementi gestiti..
|
||||
/// </summary>
|
||||
@@ -24,7 +20,6 @@ namespace IOB_MAN
|
||||
|
||||
private void myInit()
|
||||
{
|
||||
childFormList = new Dictionary<string, iobAdapt>();
|
||||
// gestione eventi binding source
|
||||
ElencoIOB.AddingNew += ElencoIOB_AddingNew;
|
||||
ElencoIOB.ListChanged += ElencoIOB_ListChanged;
|
||||
@@ -46,7 +41,7 @@ namespace IOB_MAN
|
||||
private void updateStatus()
|
||||
{
|
||||
// aggiorno labels
|
||||
lblNumChild.Text = $"Avviati {childFormList.Count} / {childList.Items.Count} / {ElencoIOB.Count} processi child";
|
||||
lblNumChild.Text = $"Avviati {childList.Items.Count} / {ElencoIOB.Count} processi child";
|
||||
//dgvManagedItems.bind
|
||||
}
|
||||
/// <summary>
|
||||
@@ -83,7 +78,6 @@ namespace IOB_MAN
|
||||
newIob.startTime = adesso;
|
||||
newIob.pID = p.Id;
|
||||
newIob.isRunning = true;
|
||||
childFormList.Add(newIob.CodIOB, newIob);
|
||||
// aggiorno elenco...
|
||||
childList.Items.Add(p.Id);
|
||||
// aggiungo a datasource
|
||||
@@ -131,7 +125,6 @@ namespace IOB_MAN
|
||||
ElencoIOB.RemoveAt(riga.Index);
|
||||
// rimuovo altri
|
||||
childList.Items.Remove(pid);
|
||||
childFormList.Remove(currSelection);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,14 +219,15 @@ namespace IOB_MAN
|
||||
{
|
||||
int pid = 0;
|
||||
List<int> proc2rem = new List<int>();
|
||||
List<iobAdapt> item2rem = new List<iobAdapt>();
|
||||
bool needRem = false;
|
||||
foreach (var kvp in childFormList)
|
||||
|
||||
foreach (iobAdapt item in ElencoIOB.List)
|
||||
{
|
||||
// verifico se esista il processo...
|
||||
int.TryParse(kvp.Key, out pid);
|
||||
try
|
||||
{
|
||||
Process p = Process.GetProcessById(pid);
|
||||
Process p = Process.GetProcessById(item.pID);
|
||||
needRem = p.HasExited;
|
||||
}
|
||||
catch
|
||||
@@ -242,14 +236,22 @@ namespace IOB_MAN
|
||||
}
|
||||
if (needRem)
|
||||
{
|
||||
proc2rem.Add(pid);
|
||||
proc2rem.Add(item.pID);
|
||||
item2rem.Add(item);
|
||||
//item.isRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach (var item in item2rem)
|
||||
{
|
||||
ElencoIOB.Remove(item);
|
||||
}
|
||||
|
||||
// ora procdedo alla cancellazione...
|
||||
foreach (var item in proc2rem)
|
||||
{
|
||||
childList.Items.Remove(item);
|
||||
childFormList.Remove(item.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,22 +267,21 @@ namespace IOB_MAN
|
||||
|
||||
private void closeAllChild()
|
||||
{
|
||||
int pid = 0;
|
||||
// ultimo controllo e chiusura...
|
||||
foreach (var kvp in childFormList)
|
||||
{
|
||||
// verifico se esista il processo...
|
||||
int.TryParse(kvp.Key, out pid);
|
||||
try
|
||||
{
|
||||
Process p = Process.GetProcessById(pid);
|
||||
p.CloseMainWindow();
|
||||
//childList.Items.Remove(pid);
|
||||
//childFormList.Remove(pid.ToString());
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
List<iobAdapt> item2rem = new List<iobAdapt>();
|
||||
|
||||
foreach (iobAdapt item in ElencoIOB.List)
|
||||
{
|
||||
item2rem.Add(item);
|
||||
}
|
||||
|
||||
|
||||
foreach (var item in item2rem)
|
||||
{
|
||||
Process p = Process.GetProcessById(item.pID);
|
||||
p.CloseMainWindow();
|
||||
ElencoIOB.Remove(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void dgvManagedItems_SelectionChanged(object sender, EventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user