c# – 这个静态方法是否是线程安全的?
发布时间:2020-12-15 23:47:52 所属栏目:百科 来源:网络整理
导读:我有以下课程: public static class MetadataManager{ // assume that it is thread safe public static ListField FieldRegistry { get; set; }}public class Field{ public int ID { get; set; } public string Name { get; set; }}public static class F
我有以下课程:
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; } } 现在, FieldDataValidationManager.Validate(111) 要么 解决方法
是的,您的代码是线程安全的,因为您的代码只是从列表中读取.静止与否并不重要.
如果List< T>上有写操作,则可能存在并发问题.然后你应该使用ConcurrentBag< T>或其他线程安全的集合类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |