Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 脚本:我需要添加一个时间延迟_C# - Fatal编程技术网

C# 脚本:我需要添加一个时间延迟

C# 脚本:我需要添加一个时间延迟,c#,C#,基本上,这个脚本会被告知每10分钟运行一次,但我只希望脚本在伦敦时间晚上9点到凌晨4点运行,有人能帮忙吗 另外,我想限制脚本每小时发送的电子邮件不超过500封 /*Email Client configuration. Here you will need to specify Server, user name and password for your SMTP server, and also testing tag*/ str

基本上,这个脚本会被告知每10分钟运行一次,但我只希望脚本在伦敦时间晚上9点到凌晨4点运行,有人能帮忙吗

另外,我想限制脚本每小时发送的电子邮件不超过500封

                  /*Email Client configuration. Here you will need to specify Server, user name and password for your SMTP server, and also testing tag*/
             string SMTPServer = "mail.justshipit.net";
             int SMTPPort = 26;
             string UserName = "no-reply+justshipit.net";
             string Password = "00000";
             string FromEmail = "no-reply@justshipit.net";
             string FromName = "Zoozio @ Amazon";

//email subject and email body
             string Subject = "Please Leave feedback for your [{Source}] order from SUPER COOL STORE";
             string eBayEmailBody = "Hello, [{Name}].\r\n\r\nYou recently purchased:\r\n\r\n[{ItemList}]\r\n\r\nWe hope everything was satisfactory and would really appriciate it if you could go to www.amazon.co.uk/feedback and leave us some positive feedback\r\nif you had any issues please get in contact with us ASAP as we want to sort things out.\r\n\r\nCall Us:0843 289 2766\r\n\r\nMany Thanks\r\nAdam\r\nCustomer Care Manager ";


             /*query syntax. Here we will select all orders processed 14 days ago but not older than 1 month, that don't have FEEDBACK email sent
              and order item table. Two queries in one request
             */
             string query =@"SELECT pkOrderId,cEmailAddress, cFullName, [Source]
FROM [Order] o
LEFT OUTER JOIN Order_LifeHistory ls on ls.fkOrderId = o.pkOrderID and ls.fkOrderHistoryTypeId='EMAIL_SENT'    and ls.Tag='FEEDBACK'
WHERE 
    o.bProcessed = 1 AND o.HoldOrCancel=0 AND o.dProcessedOn > DATEADD(D,-10,GETDATE()) AND ls.sid_history is null 
    AND o.Source IN ('AMAZON');
    SELECT pkOrderId,ItemNumber = oi.ItemNumber,ItemTitle = sis.cItemName
    FROM [Order] o
    INNER JOIN [OrderItem] oi on oi.fkOrderID = o.pkOrderID
    INNER JOIN [StockItems] sis on sis.pkStockID = oi.fkStockID
    LEFT OUTER JOIN Order_LifeHistory ls on ls.fkOrderId = o.pkOrderID and     ls.fkOrderHistoryTypeId='EMAIL_SENT'    and ls.Tag='FEEDBACK'
WHERE 
    o.bProcessed = 1 AND o.HoldOrCancel=0 AND o.dProcessedOn > DATEADD(D,-10,GETDATE()) AND ls.sid_history is null 
    AND o.Source IN ('AMAZON');"; 
//SELECT pkOrderId,ItemNumber = oi.ItemNumber,ItemTitle = sis.cItemName
//FROM [Order] o
//INNER JOIN [OrderItem] oi on oi.fkOrderID = o.pkOrderID
//INNER JOIN [StockItems] sis on sis.pkStockID = oi.fkStockID
//LEFT OUTER JOIN Order_LifeHistory ls on ls.fkOrderId = o.pkOrderID and     //ls.fkOrderHistoryTypeId='EMAIL_SENT'    and ls.Tag='FEEDBACK'
//WHERE 
//o.bProcessed = 1 AND o.HoldOrCancel=0 AND o.dProcessedOn > DATEADD(D,-10,GETDATE())     //AND ls.sid_history is null 
//AND o.Source IN ('AMAZON');"; 

我建议制定一个计划框架
Quartz.net
是一个很好的工具,并且非常容易学习/实现

您可以始终使用计划任务/cron作业来实现计时器。

为此使用内置的。不需要建立一个定制的应用程序,只是为了安排脚本的运行。我建议将来当你发布问题时,你考虑发布不暴露你的企业/客户的内部模式、基础设施和身份的代码: