Por el momento, tengo algunas funciones que tener este aspecto:¿Puedo agregar un atributo a una función para evitar el reingreso?
private bool inFunction1 = false;
public void function1()
{
if (inFunction1) return;
inFunction1 = true;
// do stuff which might cause function1 to get called
...
inFunction1 = false;
}
Me gustaría ser capaz de declarar como esto:
[NoReEntry]
public void function1()
{
// do stuff which might cause function1 to get called
...
}
¿Hay un atributo que puedo añadir a una función para evitar la reentrada? Si no, ¿cómo podría hacer una? He oído acerca de los atributos AOP que se pueden usar para agregar código antes y después de las llamadas a funciones; Serían adecuados?
¿Cuál es el alcance de esta restricción en presencia de varios subprocesos y varias instancias de objeto? ¿Es que la función1 se puede ejecutar en cualquier momento solo por un hilo para la instancia de un solo objeto o es más relajada? – Constantin