有一个C# 的控制台程序,需要用计划任务,全天不停的跑数据。
程序中因为有不同的任务,所以我用了多个线程来处理,完成后自动退出即可。现在的问题是完成任务后,控制台没有自动关闭界面,而是提示"按任意键继续.....",在此界面按任意键确实可以退出,但这是个无人监管的程序,而且允许次数多。所以最好是使用代码关闭。
Application.Exit();
System.Diagnostics.Process.GetCurrentProcess().Kill();
都已经尝试过了,没有效果,麻烦大神解答一下啊!~!~!~
而是提示"按任意键继续....."
拜托这是你自己写的代码好不好,要不然就是前面的程序员写的。
对啊,就是我自己写的啊
是这样的,我想让这个执行完了之后,自动就关掉,不需要我在手动关掉。。。。。。。
@zhouwei11: 你看看有没有一句console.readkey或者console.readline?
我的意思是你按照教科书写得时候,需要想一下为啥人家需要“按任意键继续”,
是因为如果不写一句conole.readkey,程序直接就结束了。
哪里还需要你写啥application.exit。
实际上你的问题是,希望线程结束后才退出,
然而不能使用console.readkey来HOLD住主程序。
这才是你需要学习如何处理的问题。
完全没有使用过这俩个
Thread t1 = new Thread(new ThreadStart(SyncPrice));
t1.Start();
Thread t2 = new Thread(new ThreadStart(GetFlight));
t2.Start();
while (true)
{
Thread.Sleep(100);
if (t1.ThreadState == ThreadState.Stopped && t2.ThreadState == ThreadState.Stopped)
{
Console.WriteLine("所有任务已完成,准备退出程序");
break;
}
}
System.Diagnostics.Process.GetCurrentProcess().Kill();
mian函数 里面基本就是这样。
@zhouwei11: “按任意键继续”这个语句在哪儿?
微软程序员帮你写的?
@爱编程的大叔:
好像是这样。。。。
感谢回答,我已经解决问题了。谢谢
@zhouwei11: 亲,你的是怎么搞的,设置的IsBackground 吗,这样的话有的代码是走不到的,请问你是怎么搞的额
管理员身份运行即可,具体原因不清楚,猜测可能是kill需要权限