Я хочу регистрировать коллизии в многопоточности с помощью этого простого кода
public T DataRef
{
get
{
Collisions.DetectAndSaveCollision(typeof(T).ToString(), Sync);
lock (Sync)
{
return _tData;
}
}
set
{
IsInitialized = true;
Collisions.DetectAndSaveCollision(typeof(T).ToString(), Sync);
lock (Sync)
{
_tData = value;
}
}
}
это метод, который вызывается для добавления элемента в список столкновений
public static void DetectAndSaveCollision(string value, object lockObject)
{
var acquired = false;
try
{
acquired = Monitor.TryEnter(lockObject);
}
finally
{
if (acquired)
{
Monitor.Exit(lockObject);
}
else
{
lock (lockObject)
{
CollisionCollection.Add(Thread.CurrentThread, value);
}
}
}
}
но я не уверен, что он свободен от тупиков