Является ли метод 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 кажется неизменным - поэтому ввод двух неизменяемых классов должен быть определенным.