public void run() { if (ProtocolList.Count != 0) { lock (ProtocolList) { do { PlatformBase localRunnable = (PlatformBase)ProtocolList.First.Value; if (localRunnable != null) { localRunnable.Process(); } ProtocolList.RemoveFirst(); }while (ProtocolList.Count != 0); } } }