小编Jos*_*osh的帖子

这是实现线程安全读/写Guid属性的正确方法吗?

我正在实现一个将从多个线程并发使用的类.大多数属性获取并设置原始类型,Interlocked类可以正确处理它们.该课程包括Guid属性.这不是直接以线程安全的方式实现的.这是你如何实现该属性?提前致谢.

private Byte[] _activityId;
public Guid ActivityId 
    {
        get { return new Guid(this._activityId); }
        set
        {
            Byte[] bytes = value.ToByteArray();
            Interlocked.Exchange(ref this._activityId, bytes);
        }
    }
Run Code Online (Sandbox Code Playgroud)

更新:所以到目前为止唯一提出的解决方案不包括使用任何"线程"类或结构.所以我将提出我已在评论中提出的问题:

我的理解是引用/原始值类型分配是原子的,但是Interlocked将保证更改传播到所有线程.如果我们只是简单地分配值,为什么Interlocked会公开API以交换引用类型和原始值?

c# thread-safety

6
推荐指数
1
解决办法
749
查看次数

多进程并发访问单个Sql Server Compact数据库文件

我的理解是 Sql Server compact 旨在成为在进程内运行的单个应用程序的数据存储。两个不同的进程可以连接到同一个 .sdf 文件并访问数据吗?

sql-server-ce

4
推荐指数
1
解决办法
1887
查看次数

标签 统计

c# ×1

sql-server-ce ×1

thread-safety ×1