我正在处理我的项目并自动发送电子邮件,但我的表单会受到影响并冻结,直到该过程完成。如何在不冻结当前窗口的情况下进行操作?我正在使用VB.Net。
答案 0 :(得分:-1)
您的发送电子邮件代码与UI线程同步运行。您需要在单独的线程上运行该代码,以维持UI响应。
请看一下以下内容,以帮助您入门:
Safe, Simple Multithreading in Windows Forms, Part 1
Multithreading in Windows Forms Controls
第一个链接很旧但它显示了如何完成您尝试使用Thread类的内容。如果您不关心与表单同步和设置控件的属性,那么这将做你想要的。但是,我更喜欢第二个链接...
第二个链接使用BackgroundWorker。这是首选方法,至少对我而言。如果您不关心完成此过程(在这种情况下发送电子邮件)的通知,您可以点对点忘记。但是,使用此类,您还可以直接使用表单及其来自BackgroundWorker的RunWorkerCompleted事件的控件。