// The callback method's signature MUST match that of a System.Threading.TimerCallback // delegate (it takes an Object parameter and returns void) static void UpdateResource(Object state) { res.Access((Int32)state); if (Interlocked.Decrement(ref numAsyncOps) == 0) { asyncOpsAreDone.Set(); } }