Hello all, I'm having some trouble understanding how VB6 handles "asynchronous" events when it does not support multithreading.

In my case, I am porting a VB6 application to C#, and have found that in the VB6 application, there are several Global and Public variables that are shared between several event handlers. These event handlers include button Click events, Winsock DataArrival events, and a Timer event.

How is access to these variables synchronized across all of these events? Or, is this application written incorrectly?