Статический класс / методы в многопоточном приложении - PullRequest
2 голосов
/ 12 ноября 2011

У меня есть многопоточное приложение, которому нужен доступ к MSSQL. Я создал класс со статическими методами, где каждый метод выглядит так:

public static int [] Login(string [] LoginDetails)
    {
        using (SqlConnection connection = new SqlConnection(CS))
        {
}

Это правильно? У меня нет опыта в многопоточности, но я предполагаю, что каждый поток будет запускать «копию» этого статического метода со своими переменными, поэтому они не будут использоваться совместно. Я предполагаю, что если я объявлю статические члены (например, sqlConnection) на уровне класса и сделаю его статическим, он будет разделен и, следовательно, вызовет проблемы одновременного доступа.

1 Ответ

3 голосов
/ 12 ноября 2011

Дело не в том, что он «копирует» сам метод, но каждый вызов метода (будь то в одном и том же потоке рекурсивно или в разных потоках) действительно получит свой отдельный набор локальных переменных.

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

(Кроме того, более логично включать часть массива типа рядом с именем без пробелов - поэтому int[] вместо int [].)

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