如何在C#中实现内存事务范围?

2024-03-24

我们有一个缓存,我想在其中放置一些事务范围,以便任何进程都必须显式“提交”它想要对缓存对象执行的更改,并且可以在进程中途失败时回滚任何更改。

现在,我们正在根据 get 请求深度克隆缓存的对象,它可以工作,但它不是一个干净的解决方案,并且还涉及相当多的维护。

我记得不久前听说过 .NetRocks 上的一些 MTS(内存事务范围)解决方案,但不记得它的名称了!有谁知道有什么好的 MTS 框架吗?或者,如果我要实现自己的,是否有任何好的指南/模式来说明如何做到这一点?

Thanks,

编辑:我的缩写完全错误!应该是STM,软件事务内存


听起来你还记得关于软件事务内存 http://en.wikipedia.org/wiki/Software_transactional_memory来自.NET Rocks。

不幸的是,目前还没有一个发布的、有效的、可用的框架。这仍然是 DevLabs 的一个研究项目(STM.NET http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx).

此时,您的克隆选项可能仍然是最好的方法,至少对于任何非研究或商业应用而言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C#中实现内存事务范围? 的相关文章

随机推荐

  • 如何过滤 django-taggit 顶部标签

    假设您有一个数据库 其中包含在 Django 应用程序后面运行的 User 对象 你想使用django taggit标记用户对象 以便您可以使用一些方便的过滤来检索子组 此外 您还有一个仪表板 您希望在其中显示有关已用标签的有趣统计信息 以
  • 防止 fork() 复制套接字

    我有以下情况 伪代码 function f pid fork if pid 0 exec to another long running executable no communication needed to that process
  • C# 逐字字符串换行符:CRLF、CR 或 LF?

    我今天遇到了一个有趣的问题 我的测试在构建机器上始终失败 而即使使用相同的配置 它们在我的机器上运行得很好 当我查看故障转储中 Assert AreEqual 输出的差异时 我看不到任何不同 经过一系列调查后 我发现测试用例源代码中的逐字字
  • Common Lisp 中的 LET 与 LET*

    我理解 LET 和 LET 并行绑定与顺序绑定 之间的区别 并且作为理论上的问题 它非常有意义 但有没有什么情况你曾经真正需要过 LET 在我最近查看的所有 Lisp 代码中 您可以将每个 LET 替换为 LET 而无需进行任何更改 编辑
  • 酒吧升级降级了我的主包

    这是我的依赖项列表 dependencies browser any polymer any polymer elements any angular any lawndart any validate any http utils any
  • 如何使用c#在现有的word文档中插入图像

    我正在与word and c 使用我的代码拍摄快照并将其保存在特定文件夹中 例如 C Temp 现在我想将图像保存到现有的 Word 文档中 非常感谢任何有关简短代码示例的帮助 会更喜欢使用Microsoft Office Interop
  • 如何在给定的文本片段中找到匹配括号或大括号的位置?

    许多文本编辑器和 IDE 都有一项功能 当光标放置在其中一对中的开始或结束字符上时 会突出显示匹配的括号 方括号或大括号 给定文本文件中左括号或右括号的位置 使用什么算法来查找匹配括号的位置 请记住 这些字符可以嵌套 因此只需向前或向后扫描
  • 关于创建包含按钮的图库视图的问题?

    我创建了一个包含按钮的图库 示例代码如下 public class Adapter extends BaseAdapter private Context mContext public ImageAdapter Context c mCo
  • 如何在 Bootstrap 下拉悬停上添加延迟

    我正在尝试为引导下拉菜单添加延迟 我已经添加了 css 以使下拉列表在悬停时显示 你可以在这里测试一下http www bootply com YcVBzvXqrR http www bootply com YcVBzvXqrR 这是我的
  • 如何在ios中写入json文件

    这里我正在读取和写入一个 json 文件 读取正确 但当我写入文件时 它不会在 json 文件中写入数据 这是我的代码 reading Json file NSString filePath NSBundle mainBundle path
  • apache mysql - 3306 上的“数据包乱序”

    我刚刚全新安装了 Apache 服务器 2 2 一切正常 当我访问本地主机时 我得到 它有效 我刚刚安装了 mySQL5 5 当我访问 localhost 3306 时 我只是得到乱码 J 5 5 22 4 LM D p 6 I 4 9z
  • 对象适配是否会破坏 Chrome 中的某些图像长宽比?

    I m using object fit cover on some IMG tags within a wrapper div to try to fill a div with the image I ve noticed that s
  • 密码输入字段在焦点/类型上从文本更改为密码?

    我有一个注册表单 其中输入的标题位于文本框中 当您单击该框时 文本消失 但在密码上我希望预览文本保留为 密码 而不是 但是当用户单击文本框时应清除文本 并且输入的文本应显示为 这是按钮的代码
  • 如何生成从最短到最长的所有可能字符串的列表

    我需要使用数字和字母生成无限的字符串列表 第一个字符串应该只是 a 然后是 b 到 z 然后是 0 到 9 然后是 aa ab 等 我可以轻松地用一个字符生成那些 但随后它会变得更加复杂 因此 假设我们已经有了所有可能字符串的列表 allS
  • Apache + mod_wsgi - Python 不加载已安装的模块

    我有一个带有 mod wsgi 的 Apache 服务器 运行 Python 2 7 脚本 该脚本使用通过 pip 安装的 python Pillow 模块 通常使用运行脚本python script py工作正常 但从 wsgi 运行脚本
  • 使用自定义属性创建有效的站点地图

    我正在一个网站上工作 我的网站有一个 sitemap xml 文件 该文件可以看到here http www ecofic com resources root sitemap xml 如果你向下滚动 你会看到一个url包含一些自定义标签的
  • Git hook 用于根据推送到远程服务器的分支更新各种 Web 文件夹

    我正在使用 Gitosis Debian Lenny 开发一个 Web 应用程序 我希望能够将其推送到不同的远程存储库 位置 从而允许应用程序的 前沿 发布候选 和 生产 版本镜像物理 Web 目录和代码库 我希望每个目录都有一个应用程序分
  • 使用纯 Observable 与数组(来自订阅)

    我想知道有关使用纯可观察值与订阅可观察值并使用数组的最佳实践 选项 1 纯可观察 this schools this angularFire database list schools 然后在 HTML 中使用异步管道 和 rxjs 运算符
  • 替换 JS 中的变音符号

    我正在比较字符串 并且必须替换 JS 中的变音符号 但 JS 似乎无法识别字符串中的变音符号 文本来自数据库 在浏览器中变音确实显示得很好 function replaceUmlauts string value string toLowe
  • 如何在C#中实现内存事务范围?

    我们有一个缓存 我想在其中放置一些事务范围 以便任何进程都必须显式 提交 它想要对缓存对象执行的更改 并且可以在进程中途失败时回滚任何更改 现在 我们正在根据 get 请求深度克隆缓存的对象 它可以工作 但它不是一个干净的解决方案 并且还涉