Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает lock в многопоточном сервисе / 11 сообщений из 11, страница 1 из 1
09.09.2013, 08:55
    #38390636
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Добрый день всем.
У меня есть служба где в коде два объекта System.Threading.Timer в своих обработчиках вызывают некоторую функцию:

void func()
{
lock (locker)
{

eventLog1.WriteEntry("Сообщение 1");

//здесь долго чё-то выполняется

eventLog1.WriteEntry("Сообщение 2");
}
}
Дак вот этот lock не работает, я вижу это на контрольных сообщениях, которые поставил вначале блока lock и в конце, т.е. сначала появляется Сообщение 1 потом ещё несколько Сообщение 1 и потом только Сообщение 2
Никто не знает дело?
Заранее спасибо.
...
Рейтинг: 0 / 0
09.09.2013, 09:09
    #38390647
Torre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Джек, Блокировать надо общие ресурсы, а не операции
...
Рейтинг: 0 / 0
09.09.2013, 09:13
    #38390651
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
там внутри лока и идёт работа с общим массивом.
...
Рейтинг: 0 / 0
09.09.2013, 09:26
    #38390667
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Джектам внутри лока и идёт работа с общим массивом.Значит объект locker у каждого потока свой.
...
Рейтинг: 0 / 0
09.09.2013, 09:31
    #38390669
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Алексей К,

Ну я его объявил в классе так:
static object locker = new object();
.
...
Рейтинг: 0 / 0
09.09.2013, 09:50
    #38390681
Torre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
TorreДжек, Блокировать надо общие ресурсы , а не операции
...
Рейтинг: 0 / 0
09.09.2013, 09:52
    #38390682
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Залоченный объект не обязательно должен быть статическим.
...
Рейтинг: 0 / 0
09.09.2013, 09:53
    #38390683
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
А, вообще, судить по вот этому неформатированному огрызку кода сложно. Могу предложить кофейные зёрна.
...
Рейтинг: 0 / 0
09.09.2013, 09:56
    #38390689
Torre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
В данном случае lock приносит больше вреда, используй WaitHandle
...
Рейтинг: 0 / 0
09.09.2013, 10:10
    #38390702
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Torre,
С ожиданием ManualResetEvent?
...
Рейтинг: 0 / 0
09.09.2013, 10:22
    #38390720
Torre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает lock в многопоточном сервисе
Попробуй сначала с AutoResetEvent
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает lock в многопоточном сервисе / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]