我有一个要向其引入TPL功能的 Windows 应用程序。场景是我有一个类,该类的Process
方法具有MailMessage
传递给它的 s 集合以及当前 IMAP 连接(使用 AE.Net.Mail)。
我想将尽可能多的线程分拆给Execute
另一个类中的一个方法,该方法采用单个MailMessage
项目,然后分拆MailMessage
到数据库,然后使用 IMAP 连接MailMessage
从服务器中删除。
我不太担心跟踪流程 - 我正在处理大量电子邮件,并且不担心我在写入数据库或删除时遇到一些错误。我只需要应用程序尽快通过大量 MailMessages。
我一直在玩,Task<MailMessage>.Factory.StartNew
但我真的不知道我在做什么。我似乎无法启动它......这是我尝试过的:
Task test = Task.Factory.StartNew(() =>
{
foreach (var mailMessage in _mms)
{
new ProcessMessage().Execute(mailMessage, imapConn);
}
});
我很确定我不应该在 lamda 表达式中有一个循环,当我运行它时它似乎没有进入ProcessMessage.Execute
.