I know that workflows use cooperative multithreading and guarantee that only one of the
SignalMethods or the
WorkflowMethod is running at once. Does that also extend to the
QueryMethods? For instance, if my workflow is processing a large number of signals, will the
QueryMethod be effectively blocked until it gets its turn or is the
QueryMethod not included in that single-threaded synchronization?
I understand why you’d want to synchronize the query and workflow methods because they can both modify shared state, but because the query method is not intended to modify state, it seems that it could be excluded from the synchronization.