C#最好的延时方法?

C#的FOR里如何添加延时?除了sleep跟time控件for(inti=1;i<11;i++){textbox1.Text=(i)Tostring();}... C#的FOR里如何添加延时? 除了sleep跟time控件
for(int i=1;i<11;i++)
{
textbox1.Text=(i)Tostring();
}
展开
 我来答
l7722526
2019-04-03 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3783万
展开全部
java是跨平台的,理论上不存在有方法在windows上可以而在linux上不行。你这个可能是你的两个地方JDK或tomcat环境的问题,或者是出现了其他错误,导致linux上没有运行到sleep那一步,或者是代码没有更新到linux上去。
glslian14cce7
2013-08-29 · TA获得超过1541个赞
知道小有建树答主
回答量:1389
采纳率:81%
帮助的人:561万
展开全部
这里有个系统延迟转让,既可以达到延迟的效果,而且还不占用系统的资源。下面是具体方法:
http://www.glslian.com/article.asp?id=82
希望楼主早日解决问题,如果方法好记得给个满意撒。
如果有什么不明白的地方可以HI百度我~~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tkimu
2013-08-29 · TA获得超过335个赞
知道答主
回答量:380
采纳率:0%
帮助的人:160万
展开全部
datetime。now 自己想,这个最省了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐卓手机
2019-04-11 · 乐卓全面屏手机,一部拥有黑科技的手机。
乐卓手机
向TA提问
展开全部
平时我们在做winform开发的时候,有时候需要让程序休眠几秒钟,但是,如果我们直接使用 thread.sleep()函数,页面ui就会停止响应。怎么样解决呢,你可以把页面涉及到表现ui的代码放到一个单线程处理,也可以采用我下面的做法,加一个小函数ok了。
测试过很好用。
复制代码
public static bool Delay(int delayTime)
{
DateTime now = DateTime.Now;
int s;
do
{
TimeSpan spand = DateTime.Now - now;
s = spand.Seconds;
Application.DoEvents();
}
while (s < delayTime);
return true;
}
复制代码
也可以在线程里面休眠,然后在到主线程。
复制代码
void Sleep()
{
Thread thr = new Thread(() =>
{
//这里还可以处理些比较耗时的事情。
Thread.Sleep(1000);//休眠时间
this.Dispatcher.Invoke(new Action(() =>
{
DoSomeThing();//调用处理事件
}));
});
}
//休眠后你要做的事情
void DoSomeThing()
{ }
复制代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-04-05
展开全部
在线程中如果需要延时,尽量不要使用Sleep()函数,这样会导致时间片切到别的线程中。

使用如下函数:

//Delay function
public static void Delay(int milliSecond)
{
int start = Environment.TickCount;
while (Math.Abs(Environment.TickCount - start) < milliSecond)
{
Application.DoEvents();
}
}
或者:

//Delay us Create a waitable timer
[DllImport("kernel32.dll")]
public static extern int CreateWaitableTimer(int lpTimerAttributes,
bool bManualReset, int lpTimerName);

public static void UsDelay(int us)
{
long duetime = -10 * us;
int hWaitTimer = CreateWaitableTimer(NULL, true, NULL);
SetWaitableTimer(hWaitTimer, ref duetime, 0, NULL, NULL, false);
while (MsgWaitForMultipleObjects(1, ref hWaitTimer, false, Timeout.Infinite,
QS_TIMER)) ;
CloseHandle(hWaitTimer);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式