我正在处理我的项目并自动发送电子邮件,但是我的表单受到影响并冻结,直到处理完成。如何在不冻结当前窗口的情况下工作?我正在研究VB.Net。防止表单冻结
防止表单冻结
回答
您发送的电子邮件代码与UI线程同步运行。您需要在单独的线程上运行该代码以维护UI响应。
看看下面让你开始:
Safe, Simple Multithreading in Windows Forms, Part 1
Multithreading in Windows Forms Controls
第一个链接是很老,但它显示了如何完成你正在使用的Thread类尝试。如果你不关心与表单同步并在控件上设置属性,那么这将做你想要的。但是,我更喜欢第二个链接...
第二个链接使用BackgroundWorker。这是最好的方法,至少对我而言。如果您不关心收到该流程的通知(在这种情况下发送电子邮件),您可以随时忘记并完成。但是,使用此类,您还可以直接使用表单,并且它是BackgroundWorker的RunWorkerCompleted事件中的控件。
目前正在看它先生。 –
任何人都在意解释我的回答没有用处? –
我没有downvote,但它可能是由于几个原因。有些人喜欢看到世界在燃烧。 2.这是一个很糟糕的问题,通过回答你保持问题的存在3.你真的没有提供任何你的答案中的链接的上下文。链接可能会死亡,如果他们做的内容与他们一起死去。 – Bugs
- 1. 防止表单冻结
- 2. 防止cmdlet冻结powershell
- 3. 如何防止使用QThread冻结GUI?
- 4. 如何防止短暂冻结视图
- 5. 在重建WPF UI时防止冻结?
- 6. 如何防止可可粉冻结?
- 7. tkinter按钮单击以启动线程以防止GUI冻结
- 8. IBquery在执行查询时冻结主窗体 - 如何防止冻结?
- 9. 为什么表单冻结?
- 10. 单击按钮后冻结表单
- 11. 如何防止tkinter冻结,当我点击其他地方?
- 12. 防止UI冻结而无需其他线程
- 13. Javascript:防止浏览器在调用服务器时被冻结
- 14. 锁定或冻结VBA代码以防止编辑
- 15. 防止GUI冻结,并有键取消操作/杀死线程
- 16. jquery防止表单提交
- 17. 防止表单提交PHP
- 18. 使用jQuery防止表单
- 19. 如何停止冻结listView
- 20. 阻止Javascript:Firebase .set()阻止/冻结网页
- 21. 当使用multimap时表单冻结
- 22. 防止MKPolygon有结
- 23. PrimeFaces表:冻结柱
- 24. JQuery的 - 防止提交表单上了回车键防止keystrok
- 25. 防止在写入表单时弹出数据库结果
- 26. XNA - 冻结菜单错误
- 27. ,防止我的表单提交
- 28. 防止表单元素水平跨越
- 29. 防止表单提交w/jQuery
- 30. 防止透明表单上的点击
我在youtube上发现了一个关于backgroundworker的视频,并开始处理它。我希望它能解决我的问题。 –
https://www.youtube.com/watch?v=jv4FdoaUMQE –
有很多资源比youtube更好 - 例如MSDN,以及这里的问题。大多数YouTube视频将其降低为魔法(伴随着糟糕的音乐) - 点击此处;键入这个;点击这里;键入这个。你最终根本不知道它做了什么,为什么有些事情是这样或那样,或者是你知道关于你正在使用的技术的关键所在。 – Plutonix