. During runtime, when the first, method with generic parameter gets called, it will provide

this.Value

somehow to the second one, but how? These came into my mind:

Call by value (struct) - the current value of

this.Value

gets passed, so if the

m_TaskQueue

executes it 5 minutes later, the value will not be in its recent state, it will be whatever it was when first referencing.

Call by reference (reference type) - then the most recent state of

Value

will be referenced during execution of action but if I change

this.Value

to another reference before execution of action, it will still be pointing to the old reference

Call by name (both) - where

this.Value

will be evaluated when the action gets called. I believe the actual implementation would be holding a reference to

this

then evaluate

Value

on that during actual execution of delegate since there is no call by name.

I assume it would be Call of name style but could not find any documentation so wondering if it is a well-defined behavior. This class is something like an Actor in Scala or Erlang so I need it to be thread safe. I do not want