public void GetFPS(double value) { //Go through the list of connections and call their callback function subscribers.ForEach(delegate(IFPSCallback callback) { if (((ICommunicationObject)callback).State == CommunicationState.Opened) { Console.WriteLine("FPS: " + value.ToString()); FrameRateStatus status = new FrameRateStatus(value); callback.ApplicationFPS(status); // Just for test, fast code // Relaunch Application if (status.FPSStatus == Status.Critical) { if (!appWatch.IsRunning) { appWatch.Reset(); appWatch.Start(); } if (appWatch.Elapsed.TotalMilliseconds >= appCriticalTimespan) { appWatch.Reset(); // kill if (!process.HasExited) { process.Kill(); } } } else { if (appWatch.IsRunning) { appWatch.Reset(); } } } else { subscribers.Remove(callback); } }); }
public void ApplicationFPS(FrameRateStatus fpsStatus) { }