WinForm中多线程问题
是这样的,我现在做一个用户登录的界面,在登陆成功之后弹出主框架。
我的想法是用多线程来实现,但是刚涉及多线程,不知道可以吗?
求救。
Winform
多线程
------解决方案--------------------可以的,但是注意的是,如果你的登录窗体是主线程,登录成功后进入主窗体,登录窗体要隐藏,关闭的话,应用程序会停止,同理,关闭主窗体时,要结束相关进程,否则程序主线程还在,就会一直跑。
------解决方案--------------------Windows Forms控件不支持跨线程访问。至于背景线程是登录还是做别的和Windows Forms没啥关联吧?线程结束之后更新界面就可以了。
------解决方案--------------------如果你的登录画面和主画面加载比较费时,可以考虑多线程在登录画面用户填写用户名密码的时候先把主画面加载出来,待用户名密码验证通过后直接Show出来。
如果画面本身比较快就无所谓了,你甚至可以在主画面加载的时候把登录画面以Dialog的方式弹出来。
------解决方案--------------------楼主只是学学,楼上不必太认真,谁都有起步阶段嘛。
实现是可以的,而且方法挺多,线程之间相对独立的,如果想线程之间交互,可以看看委托。
大致方案:
打开程序,一般显示的是主线程窗体,你可以将它作为登录窗体,点击后隐藏,一个小的可怜的窗体,不会占太多内存,因为我们的主窗体可能做一些监听、异步等功能,如果在主线程或前台线程,会照成程序的假死,所以这样的线程应用还是经常用到的。当然,线程的应用是同级的,子线程还有自己的子线程,无限向下,用户体验不会因为线程不同而感觉有区别。然而,因为有层级关系,主线程移除后,子线程也会被回收,造成程序关闭,所以有以上提议。。。
下班。
------解决方案--------------------如果简单的登录,实在没必要。如果是登录验证比较繁琐,造成UI线程阻塞时候,为了用户体验,可以开一个新线程验证,验证完后如果成功回调成功的方法,UI控件不能跨线程调用,注意委托的使用