转换线程的扩展方法是否安全

Is extension method for convertion thread safe

请考虑此代码:

public static int ToInt (this string str)
{
    return Convert.ToInt32 (str);
}

我应该使用 lock 来表示这个语句吗?


编辑 1)

public static int ToInt(this string str)
{
    int Id = -1;
    if (str.IsEmpty() == true ||
        int.TryParse(str.Trim().Replace(",", ""), out Id) == false)
    {
        throw new Exception("Invalid Parameter: " + str);
    }
    else
    {
        return Id;
    }         
}

此方法对线程安全吗?

不,不需要锁。

string 是不可变的;因此,当您尝试解析它时,另一个线程无法更改其内容。

它确实与扩展方法没有任何关系;根据它们的作用(或它们采用的参数),它们可能是也可能不是线程安全的。

此外;除非 lock 在代码的其他地方得到尊重;这样做不会改变任何东西......(同样,至少对于这种方法)