本文整理汇总了C#中ICpu.StartWait方法的典型用法代码示例。如果您正苦于以下问题:C# ICpu.StartWait方法的具体用法?C# ICpu.StartWait怎么用?C# ICpu.StartWait使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICpu
的用法示例。
在下文中一共展示了ICpu.StartWait方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public override void Execute(ICpu cpu)
{
// Wait model is: Because waits can occur in triggers as well as in
// mainline code, the CPU can't be the one to be tracking the
// remaining time on the wait. There can be more than one place where
// a wait was pending. So instead track the pending time inside the
// opcode itself, by having the opcode store its timestamp when it is
// meant to end, and checking it each time.
if (endTime < 0) // initial time being executed.
{
double arg = Convert.ToDouble(cpu.PopValue());
endTime = cpu.StartWait(arg);
DeltaInstructionPointer = 0; // stay here next time.
}
else if (cpu.SessionTime < endTime) // It's in the midst of an already running wait, and it's not expired yet.
{
cpu.StartWait(0); // kick back to wait mode again.
DeltaInstructionPointer = 0; // stay here next time, to test this again.
}
else // It was in an already running wait, and the wait just expired.
{
endTime = -1; // reset in case this is called again in a loop.
DeltaInstructionPointer = 1; // okay now move on.
}
}
示例2: Execute
public override void Execute(ICpu cpu)
{
object arg = cpu.PopValue();
cpu.StartWait(Convert.ToDouble(arg));
}