/// <summary>
        /// Suspends all of the threads of the current game except for the thread
        /// that is currently running (i.e. of the calling mod).
        /// Note: If you run this from a hook, the game thread you are executing this on
        /// will not be suspended, you should manually in your program.
        /// </summary>
        public static void SuspendAllThreads(this ReloadedProcess reloadedProcess)
        {
            // Get Process from Current Process
            System.Diagnostics.Process gameProcess = reloadedProcess.GetProcessFromReloadedProcess();

            // Get current thread (do not affect self)
            int currentThreadId = Thread.CurrentThread.ManagedThreadId;

            // For each thread.
            foreach (ProcessThread processThread in gameProcess.Threads)
            {
                // Ignore self
                if (processThread.Id != currentThreadId)
                {
                    // Get thread handle
                    IntPtr suspendThreadHandle = Native.Native.OpenThread(Native.Native.THREAD_ALL_ACCESS, false, processThread.Id);

                    // Suspend Thread
                    SuspendThread(suspendThreadHandle);
                }
            }
        }
 /// <summary>
 /// Kills the process behind the individual Reloaded Process instance.
 /// </summary>
 public static void KillProcess(this ReloadedProcess reloadedProcess)
 {
     System.Diagnostics.Process localReloadedProcess = reloadedProcess.GetProcessFromReloadedProcess();
     localReloadedProcess.Kill();
 }