Средства монопольного доступа к ресурам (между процессами)
От: Аноним  
Дата: 09.06.04 09:37
Оценка: 3 (1)
На сколько я понимаю

lock(smth)
{
//work with resource
}

действует в рамках ветвей одного процесса

а что делать когда процессов несколько. Какие средства в.Net для этого есть

хотелось маленький примерчик типа hello world
Re: Средства монопольного доступа к ресурам (между процесса
От: thespian Украина  
Дата: 09.06.04 10:30
Оценка: 3 (1)
Здравствуйте, <Аноним>, Вы писали:

Выписка из Троелсена:

Например есть код:
WC w = new WC();

Thread w1 = new Thread(new ThreadStart(w.DoSomeWork));
Thread w2 = new Thread(new ThreadStart(w.DoSomeWork));
Thread w3 = new Thread(new ThreadStart(w.DoSomeWork));

w1.Start();
w2.Start();
w3.Start();


Класс WC можно организововать по разному.

Пример 1 (lock):
internal class WC
{
    public coid DoSomeWork()
    {
        lock(this)
        for (int i=0; i<5; i++)
        {
            Console.WriteLine("Say: {0}.", i);
        }
    }
}


Пример 2 (System.Threading.Monitor):
internal class WC
{
    public coid DoSomeWork()
    {
        Monitor.Enter(this)
        try
        {
            for (int i=0; i<5; i++)
            {
                Console.WriteLine("Say: {0}.", i);
            }
        }
        finally
        {
            Monitor.Exit(this);
        }
    }
}
... << RSDN@Home 1.1.3 stable >>
Re: Средства монопольного доступа к ресурам (между процесса
От: orangy Россия
Дата: 09.06.04 10:40
Оценка: 3 (1)
Здравствуйте, <Аноним>, Вы писали:

А>На сколько я понимаю


А>lock(smth)

А>{
А> //work with resource
А>}
А>действует в рамках ветвей одного процесса

А>а что делать когда процессов несколько. Какие средства в.Net для этого есть

См. Mutex.

А>хотелось маленький примерчик типа hello world

Пример в MSDN.
... << RSDN@Home 1.1.4 beta 1 >>
"Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.