private void _DelayIo(IoDelayType IoDelayType, long DataSize = 1)
{
//return;
var TimeSpan = IoDelayType.GetTimePerSize(DataSize);
//Console.WriteLine("_DelayIo: {0}, {1} : {2}", IoDelayType, DataSize, TimeSpan);
if (TimeSpan != TimeSpan.Zero)
{
var CurrentThread = ThreadManager.Current;
if (CurrentThread != null)
{
//ThreadManager
CurrentThread.SetWaitAndPrepareWakeUp(HleThread.WaitType.Timer, "_DelayIo", null, WakeUpCallback =>
{
PspRtc.RegisterTimerInOnce(TimeSpan, () =>
{
WakeUpCallback();
});
}, HandleCallbacks: false);
}
}
else
{
ThreadManager.Yield();
}
}