Thread Monitor class in c# if (Id == "") { System.Threading.Monitor.Enter(this); try { if (Request.AcceptTypes == null) { queue.Enqueue(Request.QueryString["sessionid"].Value); string que = ""; que = queue.Dequeue(); TypeController.session_id = que; langStr = SessionDatabase.Language; filter = new AllThingzFilter(SessionDatabase, parameters, langStr); TypeController.session_id = ""; filter.Execute(); Request.Clear(); return filter.XML; } else { TypeController.session_id = ""; filter = new AllThingzFilter(SessionDatabase, parameters, langStr); filter.Execute(); } } finally { System.Threading.Monitor.Exit(this); } }