高分求教一个比较简单的问题 不让控制台的窗口在win下面执行不是一闪就没有了,加一句Console.ReadLine(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么循环是不可能的?while(true){ Thread.Sleep(5000); //check time, if it is midnight, run some apps} Console.Readline()会让程序停在那儿的, 应该用循环. using System.Thread.......public void runforever(){ Time a=DateTime.Get...//不好意思,获取当前时间的代码我忘记了 if (a是12:00) { // do something... }}...static void Main(){ Thread oThread = new Thread(new ThreadStart(runforever)); oThread.Start();}..... 嘿嘿,楼上的,没有loop,你怎么能runforever? 还是不太明白,打印一行后还是会关闭啊,在win下面调用命令行窗口在执行完是会关闭的啊然后,我不太理解线程,使用线程后还使用循环和我不停的循环取时间不是一样吗?怎么还要开个线程呢?那么是否只要开了线程,线程就会不停的循环下去呢?不停的捕获时间?lonk(小鱼)是否就是利用线程的延续代替了循环这种占用资源的方法那?如果是这样的话,是否说我只要线程不停,那么窗口即不会关闭的,这样也就解决了第一个问题? using System;using System.Threading;public class ThreadWork { public static void DoWork(){ for(int i = 0; i<100;i++) { Console.WriteLine("Working thread..."); Thread.Sleep(100); //你一直要执行的代码。 } }}class ThreadTest{ public static void Main() { ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork); Thread myThread = new Thread(myThreadDelegate); TimerCallback timerDelegate = new TimerCallback(CheckStatus);// //A- run 实际运行时使用A部分代码。把B部分注释调。// System.DateTime dt=DateTime.Now;// System.DateTime dtFomeNow=new DateTime(dt.Year,dt.Month,dt.Day+1,0,0,0);// System.TimeSpan ts=dtFomeNow-dt;// System.TimeSpan tsDay=new TimeSpan(1,0,0,0);// System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,ts, tsDay); //B-Test System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,1000, 1000); //第三个参数是第一次执行离现在的时间,第四个参数是以后每次执行的时间。 myThread.Start(); Console.Read(); //可在这里加一些判断,现在为了简单这么写! myThread.Abort(); } static void CheckStatus(Object state) { Console.WriteLine("Start My Work"); //可以做你要定时做的工作 }} 使用现成的好处是不占用你当前现成的资源。如我的例子演示的。如不开另外的线程,Console.Read()会一直阻塞调,你没把做起他的事了。现在这种方式最节省CPU.不用不停地去查询。 多谢多谢!那是不是如我理解的,当我把我需要执行的代码放入一个线程中,系统就会不停的去执行这个线程中的代码?不太理解DoWork()的作用,不是也用了循环吗,那个“一直要执行的代码”指的是什么?只循环100次吗,那我这个程序要一直开这那?100次就完了啊 不是这样,那个DoWork可以是你正常要执行的功能。比如说启动时。而你要定时运行的代码可以从CheckStatus中启动。DoWork中的循环完全可以删去。不清楚的地方可通过mail/msn问我。main&msn:[email protected] 用 Timer 控件, 在他的事件里检查机器时间,到12点则执行你的程序 感谢colinfly(Colin)在msn上的教导!感谢大家的帮助 chart控件生成的图形怎么转换为图片保存! js相加得到的值存入数据库为空 打包安装程序 关于Arrayline的元素 在win的datagrid中,怎么把特定一行的数据字体加粗阿。。 XAML设计器加载不了 线程中更改richTextBox属性出错(100分),各位高手,请赐教 http://www.pconline.com.cn/news/app/10201/27968.html 哪位下过 共享一下 面试考试题! List<>存储一个数组的时候,是否是像普通[]数组那样有很高的访问效率? 再问一个很菜的问题,win2000怎么卸掉 C#里的HTTP类可以用来写一个代理服务器吗?
{
Thread.Sleep(5000);
//check time, if it is midnight, run some apps
}
....
public void runforever()
{
Time a=DateTime.Get...//不好意思,获取当前时间的代码我忘记了
if (a是12:00)
{
// do something...
}
}
...
static void Main()
{
Thread oThread = new Thread(new ThreadStart(runforever));
oThread.Start();
}
.....
using System.Threading;public class ThreadWork
{
public static void DoWork()
{
for(int i = 0; i<100;i++)
{
Console.WriteLine("Working thread...");
Thread.Sleep(100);
//你一直要执行的代码。 }
}}
class ThreadTest
{
public static void Main()
{
ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
Thread myThread = new Thread(myThreadDelegate); TimerCallback timerDelegate = new TimerCallback(CheckStatus);// //A- run 实际运行时使用A部分代码。把B部分注释调。
// System.DateTime dt=DateTime.Now;
// System.DateTime dtFomeNow=new DateTime(dt.Year,dt.Month,dt.Day+1,0,0,0);
// System.TimeSpan ts=dtFomeNow-dt;
// System.TimeSpan tsDay=new TimeSpan(1,0,0,0);
// System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,ts, tsDay); //B-Test
System.Threading.Timer timer = new System.Threading.Timer(timerDelegate,null,1000, 1000);
//第三个参数是第一次执行离现在的时间,第四个参数是以后每次执行的时间。
myThread.Start();
Console.Read();
//可在这里加一些判断,现在为了简单这么写!
myThread.Abort(); }
static void CheckStatus(Object state)
{
Console.WriteLine("Start My Work");
//可以做你要定时做的工作
}}
main&msn:[email protected]