TPL機能を導入したい Windows アプリケーションがあります。シナリオは、現在の IMAP 接続 (AE.Net.Mail を使用) だけでなく、s のProcess
コレクションが渡されたメソッドを持つクラスを持っていることです。MailMessage
できるだけ多くのスレッドをExecute
別のクラスのメソッドにスピンオフして、単一のMailMessage
アイテムを取りMailMessage
、DB に渡し、IMAP 接続を使用しMailMessage
てサーバーから を削除したいと考えています。
プロセスを追跡することについてはあまり心配していません。大量のメールを扱っているので、DB への書き込みや削除でエラーが発生しても心配ありません。できるだけ早く大量の MailMessage を処理するアプリケーションが必要なだけです。
私は遊んでいますTask<MailMessage>.Factory.StartNew
が、自分が何をしているのか本当にわかりません。私はそれを開始することができないようです...これが私が試したことです:
Task test = Task.Factory.StartNew(() =>
{
foreach (var mailMessage in _mms)
{
new ProcessMessage().Execute(mailMessage, imapConn);
}
});
ラムダ式にループを含めるべきではないと確信しています。これを実行すると、 に入らないようですProcessMessage.Execute
。