安排C#控制台应用程序 - c#

我已经完成了创建电子邮件C#控制台应用程序的任务,该应用程序旨在批量运行。我是C#领域的新手,因此我对自己的方向一无所知。此C#控制台应用程序将部署在服务器上,并希望根据服务器时间在特定时间内运行。

经过研究,大多数建议都与使用任务计划程序或窗口服务有关,但是我想知道此C#控制台应用程序是否可以自己运行?也许执行完之后,它便将自己注册到服务器中,服务器将定期对其进行处理?

参考方案

如果要通过代码管理调度程序,请查看Quartz.NET:http://quartznet.sourceforge.net/

该库提供了作业和触发器的创建。

例如(直接来自:http://quartznet.sourceforge.net/tutorial/lesson_3.html):

// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();

// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();

// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(DumbJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);  
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);

现在这意味着您的控制台应用程序应该连续运行,这使其实际上不适合该工作。

选项1.通过任务计划程序(非常简单)添加执行控制台应用程序的任务。请参阅示例任务:http://www.sevenforums.com/tutorials/12444-task-scheduler-create-new-task.html

选项2。创建一个Windows服务(不复杂),该服务使用Quartz.NET或.NET的Timer类之类的库来计划作业并执行批处理操作。有关创建Windows服务http://msdn.microsoft.com/en-us/library/zt39148a.aspx的信息,请参见

选项3.使您的控制台应用程序实现Quartz.NET或/ Net的Timer类之类的计划库,并将其作为服务运行(有点复杂):Create Windows service from executable

不通过stdout写入控制台窗口 - c#

如何在不使用c#中的stdout的情况下将DIRECTLY直接写入控制台?我正在升级一些旧程序,将它的stdout重定向到文件中(因为输出很重要),并且我需要某种方式直接写到控制台,并且文本不会出现在stdout中。是否可以(不使用WinAPI)?编辑:我知道写到stderr的可能性,是否可以在控制台上为stderr设置光标位置? 参考方案 您可以写入Con…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4