相关疑难解决方法(0)

C#对象的事务?

只是好奇,是否支持普通C#对象上的事务?喜欢

using (var transaction = new ObjectTransaction(obj))
{
  try
  {
    obj.Prop1 = value;
    obj.Prop2 = value;
    obj.Recalculate(); // may fire exception
    transaction.Commit(); // now obj is saved
  }
  except
  {
     transaction.Rollback(); // now obj properties are restored
  }
}
Run Code Online (Sandbox Code Playgroud)

只是为了让答案更有用;-)其他语言有什么相似之处吗?

STM更新:这是它声称的内容:

atomic {
  x++;
  y--;
  throw;
}
Run Code Online (Sandbox Code Playgroud)

将保持x/y不变,包括链式方法调用.看起来像我要求的.至少它非常有趣.我认为这已足够接近了.此外,其他语言也有类似的东西,例如Haskell STM.注意我没说它应该用于生产;-)

c#

20
推荐指数
2
解决办法
7581
查看次数

标签 统计

c# ×1