Çerçevemizin paralellikleri üzerinde çalışırken, neden hayal edemediğim garip bir durumla karşılaştım! Durumu açıklamak için durumu basitleştirdim.Yerel bir değişkenin null olarak değiştirilmesi, başka bir iş parçacığı aracılığıyla, bu nasıl mümkün olabilir
foreach(var person in personList)
{
if (person.Name == "Mehran")
break;
}
personList
birden çok iş parçacığı arasında paylaşılır: bu kodu düşünün. person
null
olmak ve ben person.Name
için NullReferenceException
olsun için Hangi durumlarda
bu mümkün mü?
bildiğim gibi, kişi burada yerel bir değişken olarak kabul edilir ve biz foreach
bloğun içine almak, bu yüzden başarılı personList
iterated varsa, bu nedenle person
hiçbir şekilde ya da herhangi bir paralel senaryoda boş olmamalıdır. personList
başka bir iş parçacığı tarafından değiştirildi veya başvurulan person
tanzim bile
, person
değişken bir değere sahip olmalıdır. Kimse, person
'un başvurulduğu yere erişme hakkına sahip olmadığı için.
Durumu açıklayan herhangi bir senaryo mu? Bildiğim kadarıyla
Wooops! listeler null kabul edebilir! Paralel durumlar, gerekenden daha karmaşık düşünmemi sağladı! Çok teşekkürler Jon. – mehrandvd
Yep, Paralel durumlarda liste değiştirme sıkıntılarını biliyorum. Basit ve hızlı cevabınızın çözeceğini düşünüyorum. Listedeki olası boş değerleri kontrol edeceğim. – mehrandvd