Должен ли статический метод / классы / переменные быть доступными по одному в .net? - PullRequest
4 голосов
/ 01 июля 2011

Я пишу большую часть своего кода в статических методах / классах / переменных, чтобы к ним можно было обращаться по всему сайту, для идей глобализации и для «избавления» от создания и уничтожения классов, когда они не являются классами сохранения данных (dbcontextнапример).

Вопрос в том, должны ли эти классы / методы быть доступны только один раз за раз?Они вызывают какие-либо узкие места?

Спасибо.

Ответы [ 3 ]

1 голос
/ 01 июля 2011

Вопрос в том, доступны ли эти классы / методы только один раз за раз?

Нет, к ним можно получить доступ несколько раз и параллельно. Вы должны быть осторожны со статическими классами в многопоточных приложениях, так как вам нужно убедиться, что они потокобезопасны.

Они вызывают какой-либо вид горлышка бутылки?

Это будет зависеть от того, как они написаны и что они делают.

1 голос
/ 01 июля 2011

Статические методы, поля и свойства доступны параллельно.Если вам нужно «по одному», для безопасности данных вам понадобится блокировка или другой метод синхронизации.

0 голосов
/ 01 июля 2011

Не уверен, что вы имеете в виду здесь, но статические члены доступны последовательно из любого заданного потока, так же, как и элементы экземпляра.

Если вы получаете доступ к статическому члену из нескольких потоков, то вам следует синхронизировать доступ, то есть убедиться, что они происходят последовательно, используя любую из конструкций синхронизации, доступных в .NET . Это позволяет избежать непредсказуемых побочных эффектов из-за условий гонки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...