我看到很多关于被多个线程访问的静态方法以及它们的线程安全性的问题。我认为我在确保线程安全方面已经完成了大部分工作,但我不太确定的一件事是当您将“ref”变量引入静态方法本身的混合中时。这是一个精简的例子:
public static string ProcessMessage(object msg)
{
string outcome = "";
Decrypt(ref msg);
// parse msg
return outcome;
}
private static void Decrypt(ref object msg)
{
// decrypt msg
}
上面的例子是线程安全的吗?在静态方法中发生的所有处理都使用本地声明的变量,它只是从一个静态方法传递到另一个我不确定的 ref 对象。