Domanda

Ho un'applicazione VB.NET in cui vari oggetti stanno per accedere ad alcuni codice comune, e ho alcuni contatori e valori condivisi tra tutte le chiamate, in modo Attualmente sto usando una "Classe condivisa" (io sono a conoscenza le classi non possono essere condivisi, di per sé, ma tutte le variabili e metodi sono contrassegnati "condivisa").

La mia preoccupazione è per la visibilità di questo oggetto - se un utente esegue due istanze dell'applicazione sullo stesso desktop, useranno la stessa "istanza" della classe condivisa? In altre parole, saranno le due copie della domanda sia incrementare gli stessi contatori e utilizzare le stesse variabili?

Inoltre, per quanto riguarda due spazi utente sulla stessa macchina - se ogni utente esegue una copia, saranno questi due copie interferire

Forse sto bastardizing il concetto di "comune" e non c'è un modo molto migliore per fare questo (so che alcune persone codice condiviso attraverso moduli invece di classi). Esiste un metodo migliore di avere oggetti (sia variabili e metodi) condivisi in tutta l'intera applicazione, ma tenuti separati dagli altri casi di applicazione?

UPDATE: In risposta alla domanda sulla mia strada "preferito", l'applicazione che sto scrivendo esigenze di mantenere i dati privati, anche tra le diverse istanze che l'utente è in esecuzione. In tal caso, non voglio condividere i dati a tutti i tra più istanze, che è per questo che sono preoccupato per gli effetti collaterali dell'utilizzo di una classe concorrente o un modulo. Grazie per la domanda.

È stato utile?

Soluzione

Ogni istanza dell'applicazione, sia gestito da un singolo utente o multipla, vedrà la propria copia di campi in comune.

Questo blog va più nel dettaglio , che descrive i casi in cui i campi statici / comune sono come ambito oggetti come fili piuttosto che il contesto predefinito, un dominio di applicazione.

Altri suggerimenti

valori condivisi (o statico se sei un C # er) sono comuni solo al dominio App.

E 'anche possibile caricare più domini App nello stesso processo e ognuno avrà il proprio insieme di valori condivisi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top