我正在创建一个控制台应用程序,它将:
- 调用一个方法来检查一个电子邮件帐户(我已经完成了这一步)
- 将附件转换为pdf(我已完成此步骤)
- 然后一旦转换完成等待30秒
- 不断重复前面3个步骤
我已经完成了方法中的步骤 1) 和 2) ProcessMailMessages()
。以下代码有效,但我想知道我是否走在正确的轨道上,还是有更好的方法来轮询电子邮件客户端?
private static int secondsToWait = 30 * 1000;
static void Main(string[] args)
{
bool run = true;
do
{
try
{
Task theTask = ProcessEmailTaskAsync();
theTask.Wait();
}
catch (Exception e)
{
Debug.WriteLine("<p>Error in Client</p> <p>Exception</p> <p>" + e.Message + "</p><p>" + e.StackTrace + "</p> ");
}
GC.Collect();
} while (run);
}
static async Task ProcessEmailTaskAsync()
{
var result = await EmailTaskAsync();
}
static async Task<int> EmailTaskAsync()
{
await ProcessMailMessages();
await Task.Delay(secondsToWait);
return 1;
}
static async Task ProcessMailMessages()
{
...............................................................................
}