C# 怎么延时,不卡屏不休眠
我看别人用别的易语言写的,用到createwaittabletimerA函数和setwaittabletimer函数,
不是休眠,会卡屏的。
比如
代码块;
延时(5000);
代码块;
做成一个方法能这样调用
//using System.Threading; Thread t = new Thread(o => Thread.Sleep(5000)); t.Start(this); while (t.IsAlive) { Application.DoEvents(); } MessageBox.Show("ok");
.你用的是winform程序吧,BackgroundWorker应该是你需要的,
如果你坚持要使用多线程的话,记得用Invoke来同步线程。毕业论文
给你一份同步线程的代码。
delegate void SetOcxCallBack(Form F, Control c, string N, object[] V);
public static void SetOcx(Form F, Control c, string N,object[] V)
{
if (c.InvokeRequired)
{
SetOcxCallBack socb = new SetOcxCallBack(SetOcx);
F.Invoke(socb, new object[] { F, c, N,V });
}
else
{
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.InvokeMethod);
MethodInfo m = c.GetType().GetMethod(N);
m.Invoke(c, V);
}
}