在C#中 如何实现等待一个程序执行1秒 在执行下一步

在等待的1秒内A()在执行 执行一秒后 B()开始执行

第1个回答  2013-12-09
不是很明白你的意思,你是想在执行A之后,停1秒在去执行B,还是说,执行完A的所有过程了,在去执行B追问

为A()设定1秒的执行时间

追答

那么就只能这么做了
A()
{
//记录开始时间

//执行过程

//当前时间减去开始时间,记录结果

//如果结果大于0
Thread.Sleep(结果(毫秒))
B();

}

第2个回答  2013-12-09
加入一个时间控件,命令完成后开始执行倒计时,1秒后执行下一步
第3个回答  2013-12-09
void A(){
pulse = new System.Timers.Timer();
pulse.Interval = 1000;
pulse.Elapsed += new System.Timers.ElapsedEventHandler(B);
pulse.Enabled = true;
}

void B(){}追问

大哥 这个 是间隔 一秒 我希望的是 A() 执行 一秒 停止 在执行B()

谢谢 大哥的 回答

追答

个人看法可能有错:那就用线程做了,如果线程也不行就想不到其他方法了,毕竟你想让一个方法只执行一秒,抛开你的代码,一秒钟时间一个方法未必能执行的完,要把这里的调度做好设计到稍微底层一点的问题, c#不大可能在线程之外提供这类方法

第4个回答  推荐于2017-09-02
A();
System.Threading.Thread.Sleep(1000);
B();追问

sleep 会挂起A() 我希望的是 A()可以这行1秒

追答

没搞懂你的需求。
sleep不会挂起A()。A()不运行完不会运行sleep()。
如果你希望A()运行一秒,那就用定时器啊,前面已经有非常详细的方案了,你直接采用就好了。
没懂你为什么还不结账给别人分?

你不会是想只让A()运行一秒吧?一秒后让A()停止了运行B()?

追问

就是 想 让A 只运行 1秒 这是 个机器人 迈步的问题 A和B 是俩条腿。。。
哪位大哥 的 是 间隔 1秒 。。。

追答

A()和B()里面都是循环体?控制的步进电机?
设定两个定时器timer1, timer2

bool aFlag = true;
timer1.Interval = 50;
timer2.Interval = 1000;
timer1.Enable = true;
timer2.Enable = true;

timer1里面
{
timer1.Enable = false;
A()里面循环体的内容。
if(aFlag) timer1.Enable = true;
}

timer2里面
{
aFlag = false;
}

本回答被提问者采纳
相似回答