What method(s) must be used with the Application object to ensure that only one process accesses a variable at a time ?

You do not need to use Lock and Unlock when writing to the Application object, as the Application object is synchronised.

However, if you write something like this

Application["Counter"] = (int) Application["Counter"] + 1;

then you will need to use Lock and Unlock as follows:

Application["Counter"] = (int) Application["Counter"] + 1;

This is because the thread might be interrupted between the read from, and then write to, the Application object, and another thread could therefore alter the value stored for the "Counter".