Синхронизация с использованием типа System.Threading.Interlocked

System.Threading.Interlocked предоставляет функциональность для потокобезопасного манипулирования одним элементом данных, например:

Decrement() Безопасно уменьшает значение параметра на 1
Exchange() Безопасно меняет значения двух параметров местами
Increment() Безопасно уменьшает значение параметра на 1

Синхронизация с использованием атрибута [Synchronization]

Для обеспечения потокобезопасной работы целого класса, он помечается атрибутом [Synchronization]. Класс должен наследовать от ContextBoundObject. Данный подход требует аккуратного использования, поскольку синхронизации подвергаются все члены отмеченного класса, вне зависимости от того, действительно ли это нужно, что может замедлить работу программы.

Использование System.Threading.Timer

void ThreadMethod(object param)

{

}

...

// Создать делегат для выполнения в отдельном потоке

TimerCallback timeCB = new TimerCallback(ThreadMethod);

// Установить настройки таймера.

Timer t = new Timer(

timeCB, // Объект-делегат TimerCallback.

null, // Информация для передачи в вызванный метод

0, // Время перед запуском (в миллисекундах).

1000 // Время между вызовами (в миллисекундах).

);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: