Does registering unregistering to a delegate create garbage?

I edited my code post above. Is this the right way to lock this ?
I have very little experience with setting up my own thread safety.

.
.

Well i got it working it can do everything the multicast did and do it without garbage collections.
Will it build up more memory then otherwise sure but its a trivial amount.
Console.Writeline is generating collectable garbage though not the class so i drew to screen instead.