Является ли метод SqlGeometry.STUnion потокобезопасным?

Является ли метод SqlGeometry.STUnion потокобезопасным в.Net? MSDN

2 ответа

Решение

Декомпилированное тело из сборки SQL 11.0 с использованием JustDecompile:

    [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.Construct а также GLNativeMethods.GeodeticUnion являются статическими методами, в то время как другие нигде не могут быть заблокированы. Ни один из используемых методов не модифицирует вызывающий объект, так что да - это потокобезопасно.

Как это не может быть? SqlGeometry кажется неизменным - поэтому ввод двух неизменяемых классов должен быть определенным.

Другие вопросы по тегам