私はクラスの下にありますこの静的メソッドはスレッドセーフですか?
今public static class MetadataManager
{
// assume that it is thread safe
public static List<Field> FieldRegistry { get; set; }
}
public class Field
{
public int ID { get; set; }
public string Name { get; set; }
}
public static class FieldDataValidationManager
{
public static bool Validate(int fieldID)
{
return MetadataManager.FieldRegistry.FirstOrDefault(f => f.ID == fieldID).ID > 1;
}
public static bool Validate(Field field)
{
return fieldID.ID > 1;
}
}
、 User1とUser2が同時に静的メソッドを呼び出して、同時性に関するいかなる問題があるのでしょうか?
FieldDataValidationManager.Validate(111)
または User1が FieldDataValidationManager.Validate(field1)
を実行しているとUser2があなたのコードだけで、リストから読んでいるので、はい、あなたのコードは、スレッドセーフであるFieldDataValidationManager.Validate(field2)
親愛なるルネ。私はあなたに同意しますが、それは単なる例です。 – Tim