At the moment, I have some functions which look like this:
private bool inFunction1 = false; public void function1() { if (inFunction1) return; inFunctio
You may want to consider avoiding re-entrancy by modifying your design so that it will never call function1() before its previous invocation completes. To me it seems that a layer is missing from above function1().