Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск static функции одновременно из разных мест 
:(
    Опции темы
bmpa
Дата 2.3.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Что будет, если из нескольких мотоков используется одновременно одна функция.

Потоки будут ждать её освобождения или будет одновременное выполнение. Будут ли ошибки при одновременном выполнении?
PM MAIL   Вверх
Injener
Дата 2.3.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



Если не будешь синхронизировать должным образом свои потоки, то глюки гарантированы smile 
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
Voyager
Дата 3.3.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Цитата(bmpa @  2.3.2008,  15:42 Найти цитируемый пост)
Будут ли ошибки при одновременном выполнении?

Возможны. Нужен механизм синхронизации/залочивания.


Это сообщение отредактировал(а) Voyager - 3.3.2008, 11:59
PM   Вверх
Дрон
Дата 3.3.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 92



Ошибок самих по себе не будет, но возможны неправильные результаты работы.

Чтобы исключить одновременное выполнение я делаю (и MSDN рекомендует) примерно вот так:
Код

class MyClass
{

    private static object syncObject = new Object();

    public static void SomeMethod()
    {
         lock(syncObject)
         {
                // а вот тут что-нибудь опасное для многопоточности
         }
    }

}


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

Это сообщение отредактировал(а) Дрон - 3.3.2008, 20:31


--------------------
Да. Именно так.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.