public void ExecuteQueued(CpuThreadState BaseCpuThreadState) { if (Enabled) { HleCallback[] HleCallbackListCopy; lock (HleCallbackList) { HleCallbackListCopy = HleCallbackList.ToArray(); HleCallbackList.Clear(); Flag = false; } foreach (var HleCallback in HleCallbackListCopy) { var FakeCpuThreadState = new CpuThreadState(CpuProcessor); FakeCpuThreadState.CopyRegistersFrom(BaseCpuThreadState); HleCallback.SetArgumentsToCpuThreadState(FakeCpuThreadState); FakeCpuThreadState.EnableYielding = false; FakeCpuThreadState.ExecuteAT(FakeCpuThreadState.PC); //HleInterop.Execute(FakeCpuThreadState); //Console.Error.WriteLine("Execute queued"); // Execute just one! //break; } } }