SqlGeometry.STUnion方法线程安全吗?

时间:2014-04-23 10:39:57

标签: c# multithreading sqlgeometry

.Net中的SqlGeometry.STUnion方法线程安全吗? MSDN

2 个答案:

答案 0 :(得分:1)

使用JustDecompile从 11.0程序集中解压缩的主体:

    [SqlMethod(IsDeterministic=true, IsPrecise=false)]
    public SqlGeometry STUnion(SqlGeometry other)
    {
        if (this.IsNull || other == null || other.IsNull || this.Srid != other.Srid)
        {
            return SqlGeometry.Null;
        }
        this.ThrowIfInvalid();
        other.ThrowIfInvalid();
        return SqlGeometry.Construct(GLNativeMethods.Union(this.GeoData, other.GeoData), this.Srid);
    }

其中SqlGeography.ConstructGLNativeMethods.GeodeticUnion是静态方法,而其他人不能在任何地方陷入僵局。没有使用的方法是修改调用对象,所以是的 - 它是线程安全的。

答案 1 :(得分:0)

怎么可能不是? SqlGeometry似乎是不可变的 - 因此2个不可变类的输入应该是一个确定的输出。