Im Moment habe ich einige Funktionen, die wie folgt aussehen:Kann ich einer Funktion ein Attribut hinzufügen, um den Wiedereintritt zu verhindern?
private bool inFunction1 = false;
public void function1()
{
if (inFunction1) return;
inFunction1 = true;
// do stuff which might cause function1 to get called
...
inFunction1 = false;
}
ich sie so in der Lage sein möchten, zu erklären:
[NoReEntry]
public void function1()
{
// do stuff which might cause function1 to get called
...
}
Gibt es ein Attribut ich hinzufügen kann eine Funktion, um den Wiedereintritt zu verhindern? Wenn nicht, wie würde ich eine machen? Ich habe von AOP-Attributen gehört, die zum Hinzufügen von Code vor und nach Funktionsaufrufen verwendet werden können. Wären sie geeignet?
Was ist der Umfang dieser Einschränkung in Anwesenheit von mehreren Threads und mehreren Objektinstanzen? Ist es möglich, dass function1 zu jedem Zeitpunkt nur durch einen einzelnen Thread für einzelne Objektinstanzen ausgeführt werden kann oder ist es entspannter? – Constantin