我不知道我是否做错了什么,我正在使用 SmartThreadPool 来管理我的线程。在这种特殊情况下,我调用 SmartThreadPool 的一个实例,然后获取工作项的结果(发送电子邮件的方法)。“字符串结果”接收方法的输出。如果正常则显示正常,否则显示异常。
SmartThreadPool smartThreadPool = new SmartThreadPool();
String result = (String)smartThreadPool.QueueWorkItem(x => emailHelper.sendEmail(whichMail.Text, emailTo.Text, subject.Text, bodyMsg.Text)).Result;
if (result != "True")
helper.showMessageBox(Properties.Resources.emailNotSent + result, "x");
else
aux.setRadDesktop(Properties.Resources.emailSent, "", false);
问题是当我将结果转换为 String 时,它太慢了,甚至我的 UI 也暂停了 2 秒,我不知道为什么。如果我这样做忽略了工人项目的结果:
smartThreadPool.QueueWorkItem(x => emailHelper.sendEmail(whichMail.Text, emailTo.Text, subject.Text, bodyMsg.Text));
一切正常,有什么线索吗?