///<summary>Ritorna l'istanza della classe ThreadGestioneWifi se già creata, oppure la istanzia</summary> ///<param name="settings">Impostazione di connessione</param> ///<exception cref = "SnifferAppDBConnectionException">Eccezione lanciata in caso di errore nell'apertura della connessione al DB</exception> ///<exception cref = "SnifferAppThreadException">Eccezione lanciata in caso di errore nell'apertura di un nuovo thread</exception> ///<returns>L'istanza della classe ThreadGestioneWifi</returns> static public ThreadGestioneWifi getInstance(NetworkSettings settings) { if (instance == null) { instance = new ThreadGestioneWifi(settings); } return(instance); }
static void Main() { ThreadGestioneWifi threadGestioneWifi = null; try { NetworkSettings settings; settings = new NetworkSettings( Convert.ToInt32(ConfigurationManager.AppSettings["servicePort"]) ); if (settings.servicePort <= 1023) { throw new ArgumentOutOfRangeException(); } threadGestioneWifi = ThreadGestioneWifi.getInstance(settings); threadGestioneWifi.start(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmMain(settings)); if (threadGestioneWifi != null) { threadGestioneWifi.stop(); } } catch (SnifferAppException e) { MessageBox.Show(e.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception e) { if (e is FormatException || e is OverflowException || e is ArgumentOutOfRangeException) { MessageBox.Show("Le configurazioni settate sono errate.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Si è verificato un errore generico nell'esecuzione del programma: " + e.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } } return; }