複数のスレッドからアクセスされる静的メソッドとそれらのスレッド セーフについて、多くの質問が寄せられてきました。スレッドの安全性を確保するという点ではほとんど理解できたと思いますが、静的メソッド自体のミックスに '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 オブジェクトだけです。