У меня есть приложение VB.NET, где различные объекты будут получать доступ к некоторому общему коду, и у меня есть некоторые счетчики и значения, общие для всех вызовов, поэтому в настоящее время я использую «Общий класс» (я знаю, классы сами по себе не могут быть общими, но все переменные и методы помечены как «Общие»).
Меня беспокоит видимость этого объекта - если пользователь запускает два экземпляра приложения на одном рабочем столе, будут ли они использовать один и тот же "экземпляр" общего класса? Другими словами, будут ли две копии приложения увеличивать одни и те же счетчики и использовать одни и те же переменные?
Кроме того, как насчет двух пользовательских пространств на одном и том же компьютере - если каждый пользователь запускает копию, эти две копии будут мешать?
Возможно, я убираю концепцию "Shared", и есть намного лучший способ сделать это (я знаю, что некоторые люди делят общий код через модули вместо классов). Есть ли лучший способ, чтобы объекты (как переменные, так и методы) совместно использовались во всем приложении, но содержались отдельно от других экземпляров приложения?
UPDATE:
В ответ на вопрос о моем «предпочтительном» способе приложение, которое я пишу, должно сохранять конфиденциальность данных даже между различными экземплярами, которые запускает пользователь. В этом случае я вообще не хочу делить какие-либо данные между несколькими экземплярами, поэтому я обеспокоен побочными эффектами использования класса Shared или Module. Спасибо за вопрос.