Лига программистов, отзовись!

В горячее выдвигать не прошу, просто срочно нужна помощь знающих людей) Гугл не помогает, на форумах молчат. Может здесь кто поможет.

Проблема вот в чем. Пишу приложеньку на шарпе, решил запилить многопоточность. Есть у меня некоторый метод, который параллельно исполняют несколько потоков:
void function(void)
{
lock(lockobj)
{
//тут потоки читают/пишут общий ресурс
}
}


lock() выставляет блокировку на ресурс только в данном участке кода. Но совершенно в другом участке кода, который исполнят основной поток, также необходимо осуществлять доступ к этому общему ресурсу.
Теперь вопрос: как заблокировать ресурс в основном потоке?
1
Автор поста оценил этот комментарий

@pascuda, в целом @i386, дело тебе выше говорит.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Не помню, читал ли я его комментарий тогда или нет, но согласен с каждым словом)
@i386, спасибо за ценный совет!

UPD.Если кому интересно, вопрос более не актуален: мое внимание занимает теперь другая девушка, а место работы я сменил в конце прошлого года)

показать ответы
Автор поста оценил этот комментарий

О! Спасибо тебе, человек! Про мьютексы и семафоры я конечно и раньше знал, но только сейчас до меня дошло, что я могу использовать мьютекс, который будет виден и основному, и дочерним потокам)

Еще раз спасибо!

раскрыть ветку (1)
Автор поста оценил этот комментарий

Хотя нет, это не то. Мьютекс блокирует именно участок кода. А мне нужно обращения к ресурсу блочить

показать ответы
Автор поста оценил этот комментарий

Если я правильно помню универский курс, то Вам нужно что-то из этого:

https://msdn.microsoft.com/ru-ru/library/system.threading.se...

https://msdn.microsoft.com/ru-ru/library/system.threading.mu...

раскрыть ветку (1)
Автор поста оценил этот комментарий

О! Спасибо тебе, человек! Про мьютексы и семафоры я конечно и раньше знал, но только сейчас до меня дошло, что я могу использовать мьютекс, который будет виден и основному, и дочерним потокам)

Еще раз спасибо!

показать ответы