diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs
index 426164d3..7226eac0 100644
--- a/IOB-MAN/IOBManPanel.cs
+++ b/IOB-MAN/IOBManPanel.cs
@@ -7,10 +7,6 @@ namespace IOB_MAN
{
public partial class IOBManPanel : Form
{
- ///
- /// Elenco dei processi
- ///
- protected Dictionary childFormList;
///
/// Binding source degli elementi gestiti..
///
@@ -24,7 +20,6 @@ namespace IOB_MAN
private void myInit()
{
- childFormList = new Dictionary();
// 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
}
///
@@ -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 proc2rem = new List();
+ List item2rem = new List();
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 item2rem = new List();
+
+ 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)