В статье на MSDN было показана реализации транзакции на уровне объектов памяти. Я вкратце изложу основные моменты.
Объекты находятся в состоянии A, при старте транзакции они переходят во временное состояние. В этот момент нежелателен доступ к ним из других потоков (транзакций), но это зависит уже от конкретной операции. После успешного завершения транзакции (коммита) объекты переходят в конечное состояние B. Если транзакций не удалась - возвращаемся в состояние А.
Постановка:
Нам нужно выполнять некую операцию, а точнее набор операций, как единое целое. Это включает в себя как обращение к БД, так и обращение к ресурсам (объектам) в памяти.
Схема работы следующая:

Объекты находятся в состоянии A, при старте транзакции они переходят во временное состояние. В этот момент нежелателен доступ к ним из других потоков (транзакций), но это зависит уже от конкретной операции. После успешного завершения транзакции (коммита) объекты переходят в конечное состояние B. Если транзакций не удалась - возвращаемся в состояние А.
Read more: DevLanfear - .NET разработка