Как выполнить синхронизацию потоков - C#
Формулировка задачи:
Добрый вечер!
Получил задание с определенным условием, а именно "разделить операции на потоки и
синхронизацию потоков выполнять с помощью базовых механизмов платформы (без использования Task Parallel Library и concurrent-коллекций)". Как можно это реализовать? Откопал оператор lock и по нему короткий мануал и пример. Он годится?
Опыта программирования на C# нет, только Java и С++, но человеку надо сделать на C#.
Решение задачи: «Как выполнить синхронизацию потоков»
textual
Листинг программы
The lock statement is translated by C# 3.0 to the following:
var temp = obj;
Monitor.Enter(temp);
try
{
// body
}
finally
{
Monitor.Exit(temp);
}
In C# 4.0 this has changed and it is now generated as follows:
bool lockWasTaken = false;
var temp = obj;
try
{
Monitor.Enter(temp, ref lockWasTaken);
// body
}
finally
{
if (lockWasTaken)
{
Monitor.Exit(temp);
}
}