«Библиотека». Первый поток моделирует взятие книги читателем. Второй поток моделирует сдачу книги. Количество книг в библиотеке ограничено. Потоки находятся в разных процессах.
Подскажите, как должно быть? Делаю так:
class Program
{
static Semaphore semaphoreObj = new Semaphore(4, 5, "my_semaphore");
static void Main(string[] args)
{
Process.Start(@"C:\visual studio 2015_Projects\4p\bin\Debug\4p.exe");
Thread.Sleep(133);
Thread.CurrentThread.Name = "Поток 1";
while (true)
Count();
Console.ReadLine();
}
public static void Count()
{
for (int i = 0; i < 1000; i++)
{
semaphoreObj.WaitOne();
int el;
using (FileStream fsr = new FileStream(@"C:\books.txt", FileMode.Open))
using (BinaryReader br = new BinaryReader(fsr)) el = br.ReadInt32();
using (FileStream fsr1 = new FileStream(@"C:\books.txt", FileMode.Open))
using (BinaryWriter bw = new BinaryWriter(fsr1))
{
el -= 1;
bw.Write(el);
}
Thread.Sleep(1000);
int f = semaphoreObj.Release();
Console.WriteLine("{0} взял книгу. Книг {1}", Thread.CurrentThread.Name, f);
}
}
}
}
И так:
class Program
{
static Semaphore semaphoreObj;
static void Main(string[] args)
{
semaphoreObj = Semaphore.OpenExisting("my_semaphore");
Thread.CurrentThread.Name = "Поток 2";
while (true)
Count();
Console.ReadLine();
}
public static void Count()
{
for (int i = 0; i < 1000; i++)
{
semaphoreObj.WaitOne();
int el;
using (FileStream fsr = new FileStream(@"C:\books.txt", FileMode.Open))
using (BinaryReader br = new BinaryReader(fsr)) el = br.ReadInt32();
using (FileStream fsr1 = new FileStream(@"C:\books.txt", FileMode.Open))
using (BinaryWriter bw = new BinaryWriter(fsr1))
{
el += 1;
bw.Write(el);
}
Thread.Sleep(2500);
int f=semaphoreObj.Release();
Console.WriteLine("{0} сдал книгу. Книг {1}", Thread.CurrentThread.Name, f);
}
}
}
}
Получается, что число книг не изменяется. В чем проблема не могу понять...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Доброго времени суток, помогите решить проблему :
У меня есть изображение в Canvas, мне надо его перевести в BitmapВезде написан один и тот же код, где при переводе используется PixelFormats
Делаю парсинг текстового файлаНужно задать условие: "если строка начинается с числа" и тд