|
|
|
|
Strumenti |
11-10-2017, 17:31 | #1 |
Member
Iscritto dal: Mar 2010
Messaggi: 91
|
[VB.NET] Forms e MultiThread
Buona sera a tutti.
Vi pongo un quesito più di Metodo di programmazione che di scrittura codice vera e propria. Vengo subito al dunque. Mi sono trovato a dover manutenere un'applicazione Client-Server con base dati Microsoft SQL sviluppata in VB.Net da ex colleghi. In sostanza, l'applicazione Server riceve delle stringhe da dispositivi esterni che poi passa (via Socket) ai diversi Client connessi. L'applicazione Client, può essere intesa come costituita da diversi Moduli/Form (che possiamo considerare indipendenti tra loro). Su ricezione di una stringa da parte del Server, l'applicazione Client, deve aggiornare i diversi controlli dei diversi moduli (ListView e TextBox nel Form1, Mappa e ListView nel Form2, altre ListView nel Form3). Ovviamente, fino a quando si ricevevano alcune stringhe al minuto non c'era alcun problema, ma, adesso, si trova a dover gestire 5-6 stringhe al secondo. Documentandomi un po' Online, mi è parso di capire che un'applicazione Windows, ha un solo ed unico Thread che gestisce il Controlli, tant'è che, per aggiornare i controlli da Threads diversi, è necessario richiamare l'Invoke. Ovviamente, un solo Thread che gestisce l'aggiornamento di tutti questi Form, causa il rallentamento dell'applicazione con conseguente freeze della GUI e blocco dell'applicativo. Volevo quindi chiedervi: -E' vero che è solo uno il Thread che gestisce la GUI di una applicazione? In caso contrario, si potrebbe pensare ad una classe "Core" che gestisce la ricezione delle stringhe del Server e che avvia Thread diversi/indipendenti per ogni Form ai quali passa le stringhe ricevute? -In caso contrario, è fattibile (o è una stupidata?) pensare di realizzare il diversi moduli/form come applicativi/exe a vita propria che vengono eseguiti e inglobati nel Form del Core all'avvio? In tal caso, come è possibile passare dati tra due EXE separati? Grazie a chi spenderà un po' del suo tempo per darmi qualche dritta. Mi scuso per il gergo poco tecnico, ma non sono un esperto di programmazione. Buona serata |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:10.