MAME:跳过旧方案多线程做法才需要的Thread.Sleep(),已不必要,节省时间

This commit is contained in:
sin365 2025-10-23 10:39:33 +08:00
parent c0a8127d6a
commit 8cb9a28620
2 changed files with 18 additions and 8 deletions

View File

@ -68,22 +68,29 @@ namespace MAME.Core
while(bNeedPreheat) while(bNeedPreheat)
UpdateFrame(); UpdateFrame();
Mame.paused = true; Mame.paused = true;
Thread.Sleep(20); if(mameMainMotion.bIsNewThreadMode)
Thread.Sleep(20);
Mame.soft_reset();//软重启一次,确保没有脏数据 Mame.soft_reset();//软重启一次,确保没有脏数据
State.loadstate_callback(sr); State.loadstate_callback(sr);
Mame.postload(); Mame.postload();
Video.popup_text_end = Wintime.osd_ticks() + Wintime.ticks_per_second * 2; Video.popup_text_end = Wintime.osd_ticks() + Wintime.ticks_per_second * 2;
mameMainMotion.ResetFreameIndex(); mameMainMotion.ResetFreameIndex();
Thread.Sleep(20); if (mameMainMotion.bIsNewThreadMode)
Thread.Sleep(20);
Mame.paused = false; Mame.paused = false;
} }
public void SaveState(System.IO.BinaryWriter sw) public void SaveState(System.IO.BinaryWriter sw)
{ {
Mame.paused = true; Mame.paused = true;
Thread.Sleep(20);
if (mameMainMotion.bIsNewThreadMode)
Thread.Sleep(20);
State.savestate_callback(sw); State.savestate_callback(sw);
Thread.Sleep(20);
if (mameMainMotion.bIsNewThreadMode)
Thread.Sleep(20);
Mame.paused = false; Mame.paused = false;
} }

View File

@ -289,16 +289,19 @@ namespace MAME.Core
if (Machine.bRom) if (Machine.bRom)
{ {
Mame.exit_pending = true; Mame.exit_pending = true;
Thread.Sleep(50); if (bIsNewThreadMode)
Thread.Sleep(50);
} }
} }
public void ResetFreameIndex() public void ResetFreameIndex()
{ {
Mame.paused = true; Mame.paused = true;
Thread.Sleep(20); if (bIsNewThreadMode)
Thread.Sleep(20);
Video.screenstate.frame_number = 0; Video.screenstate.frame_number = 0;
Thread.Sleep(20); if (bIsNewThreadMode)
Thread.Sleep(20);
Mame.paused = false; Mame.paused = false;
} }
@ -596,7 +599,7 @@ namespace MAME.Core
int TempWidth = 0; int TempWidth = 0;
int TempHeight = 0; int TempHeight = 0;
private bool bIsNewThreadMode; public bool bIsNewThreadMode;
private void ResizeMain() private void ResizeMain()
{ {