基于Windows的应用程序中的计时器控件.net?

时间:2011-09-15 22:16:34

标签: .net timer desktop-application

我正在创建一个应用程序,应用程序将继续检查我的gmailbox,如果有任何邮件到达,它会通知我,目前我使用的计时器将在每10秒后被解雇,似乎应用程序仍然挂起,因为它检查新邮件,并且UI没有响应,有什么方法我可以检查任何新邮件一旦到达或我的应用程序保持响应的东西,即使在计时器检查新邮件,我被困在这里最后2周。

请任何人有任何想法或知道一些代码。我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您是否正在对UI中的单独线程执行检查?如果没有,你会看到你描述的挂起。

编辑:Per Ken的建议,增加一些细节。

这是WinForms应用程序中线程描述的链接。

http://www.yoda.arachsys.com/csharp/threads/winforms.shtml

你可以保持你的计时器,但你需要产生一个线程来完成计时器现在正在做的工作。在UI中使用该线程的数据可能存在问题。如果是这样,您将需要查看BeginInvoke和InvokeRequired - 或将任务的结果存储在成员变量中(可能需要lock关键字)。希望有所帮助。