首页 新闻 会员 周边 捐助

C# 控制台 自动退出

0
悬赏园豆:50 [已解决问题] 解决于 2016-05-20 12:18

有一个C# 的控制台程序,需要用计划任务,全天不停的跑数据。

程序中因为有不同的任务,所以我用了多个线程来处理,完成后自动退出即可。现在的问题是完成任务后,控制台没有自动关闭界面,而是提示"按任意键继续.....",在此界面按任意键确实可以退出,但这是个无人监管的程序,而且允许次数多。所以最好是使用代码关闭。

 Application.Exit();

System.Diagnostics.Process.GetCurrentProcess().Kill();

 

都已经尝试过了,没有效果,麻烦大神解答一下啊!~!~!~

Ian_zw的主页 Ian_zw | 初学一级 | 园豆:8
提问于:2016-05-20 11:24
< >
分享
最佳答案
0

而是提示"按任意键继续....."

拜托这是你自己写的代码好不好,要不然就是前面的程序员写的。

收获园豆:50
爱编程的大叔 | 高人七级 |园豆:30844 | 2016-05-20 11:27

对啊,就是我自己写的啊

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 11:28

是这样的,我想让这个执行完了之后,自动就关掉,不需要我在手动关掉。。。。。。。

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 11:30

@zhouwei11: 你看看有没有一句console.readkey或者console.readline?

我的意思是你按照教科书写得时候,需要想一下为啥人家需要“按任意键继续”,

是因为如果不写一句conole.readkey,程序直接就结束了。

 

哪里还需要你写啥application.exit。

 

实际上你的问题是,希望线程结束后才退出,

然而不能使用console.readkey来HOLD住主程序。

这才是你需要学习如何处理的问题。

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-05-20 11:38

完全没有使用过这俩个

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();

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 11:43

mian函数 里面基本就是这样。

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 11:44

@zhouwei11: “按任意键继续”这个语句在哪儿?

微软程序员帮你写的?

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-05-20 11:44

@爱编程的大叔: 

好像是这样。。。。

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 11:45

感谢回答,我已经解决问题了。谢谢

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 12:17

@zhouwei11: 亲,你的是怎么搞的,设置的IsBackground 吗,这样的话有的代码是走不到的,请问你是怎么搞的额

农村小伙 | 园豆:202 (菜鸟二级) | 2016-07-19 15:47
其他回答(1)
0

管理员身份运行即可,具体原因不清楚,猜测可能是kill需要权限

Ian_zw | 园豆:8 (初学一级) | 2016-05-20 12:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册