Ich frage mich nur, ob dieser Code, den ein Entwicklerkollege (der inzwischen gegangen ist), OK ist, ich glaube, er wollte vermeiden, eine Sperre zu setzen. Gibt es einen Leistungsunterschied zwischen diesem und nur mit einer geraden forward Sperre?
private long m_LayoutSuspended = 0;
public void SuspendLayout()
{
Interlocked.Exchange(ref m_LayoutSuspended, 1);
}
public void ResumeLayout()
{
Interlocked.Exchange(ref m_LayoutSuspended, 0);
}
public bool IsLayoutSuspended
{
get { return Interlocked.Read(ref m_LayoutSuspended) != 1; }
}
Ich habe gedacht, dass so etwas mit einem Schloss einfacher wäre? Es wird in der Tat von mehreren Threads verwendet werden, weshalb die Verwendung von Sperren/interlocked beschlossen wurde.