CSPspEmu.Hle.Modules.iofilemgr.IoFileMgrForUser._DelayIo C# (CSharp) Method

_DelayIo() private method

private _DelayIo ( IoDelayType IoDelayType, long DataSize = 1 ) : void
IoDelayType IoDelayType
DataSize long
return void
        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();
            }
        }