次のようなコンソールアプリを作成しています。
- メールアカウントを確認するメソッドを呼び出します(私はこの手順を実行しました)
- 添付ファイルを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()
{
...............................................................................
}