100分求进程或线程问题
我在用 VB.NET 2005 开发一个程序时要一个“每10分钟检查一次是否有新邮件。”,从邮件服务器中检查新邮件代码已搞定,问题出在于在用户正在操作,而10分钟检查新邮件又要执行,这个时候,程序会卡住用户的操作而进行新邮件的检查。
如果你知道:
如何把执行检查新邮件由后台或另一线程执行,反正不要卡住用户的操作。
或者在程序空闲时gfsfgsdgfds
\
我本来写500分的,但最高只能给 100 分,详细者得。
[解决办法]
可以使用异步操作
参考msdn
ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/cpconasynchronousprogrammingdesignpattern.htm
[解决办法]
Dim ThreadMail As Threading.Thread
ThreadMail=new Threading.Thread(AddressOf Function) '{在函数中}
ThreadMail。start()
Function就是要执行的函数,比如检查邮件的那个函数
希望对你有帮助!
[解决办法]
http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker_members.aspx
[解决办法]
在系统中启用线程进行新邮件检查
dim th as new threading.thread(addressof checkmail)
th.start()
checkmail方法
private sub CheckMail()
while true
'检查新邮件的方法
'新邮件的处理
thread.CurrentThread.Sleep(600000)
end while
end sub
[解决办法]
如果你用定时器,在10分钟时,触发了检查邮件的函数(没有用线程),那么你的窗口,需要等到邮件函数结束后,才能处理其他事情。在这期间,你的窗口将处于假死状态。
解决方法是使用线程来执行你的邮件检查函数。值得注意的是,使用了线程后,线程不可以直接操作你的窗口控件。解决方法是使用 Invoke(new EventHandler(m_UploadThread_OnFinish), sender, e);
[解决办法]
使用 多线程 试试
http://www.pconline.com.cn/pcedu/empolder/net/vb/0504/593606.html