我在某论坛发言
“如果不用多线程,当网页A不打开完毕的时候,根本不可能动界面里面的任何东西。”--实现Tab选项卡界面的web浏览器效果。回帖:“还是回去好好学编程吧,不到半瓶子就出来晃了。你可以把你这个帖子留下,过2年再看看,看看到时候是不是会觉得自己像个小白。当然,过了2年要是还没什么进步,那当我没说”“楼上说话请不要太打击人了.
winner2050 只是不知道 UI 多线程和任务多线程的区别.
当然一般 UI 多线程的软件也很少见, 大多数开发人员也不会用到.闻道有先后, 术业有专攻. 让别人知道, 比单纯鄙视更有意义. ”他们说得那么理直气壮的,到底谁对。我都晕了。我测试了一下
用tab控件在tab1里面的按钮运行一个非常长的循环真的是界面假死了,如果用多线程就能边运行,边切换其他的tab选项卡。
“如果不用多线程,当网页A不打开完毕的时候,根本不可能动界面里面的任何东西。”--实现Tab选项卡界面的web浏览器效果。回帖:“还是回去好好学编程吧,不到半瓶子就出来晃了。你可以把你这个帖子留下,过2年再看看,看看到时候是不是会觉得自己像个小白。当然,过了2年要是还没什么进步,那当我没说”“楼上说话请不要太打击人了.
winner2050 只是不知道 UI 多线程和任务多线程的区别.
当然一般 UI 多线程的软件也很少见, 大多数开发人员也不会用到.闻道有先后, 术业有专攻. 让别人知道, 比单纯鄙视更有意义. ”他们说得那么理直气壮的,到底谁对。我都晕了。我测试了一下
用tab控件在tab1里面的按钮运行一个非常长的循环真的是界面假死了,如果用多线程就能边运行,边切换其他的tab选项卡。
解决方案 »
- 问个iframe问题
- 继续提问2:关于dataGridView缩放时候闪烁
- HttpRequest和HttpResponse跳转后设置cookie无效的问题
- 如何用反射来读取Com组件里类,并创建该类的对象
- 哪位大虾把这段代码改成C#
- Hashtable表的问题????????
- 如何屏蔽/开启 模式窗口右上角的 ”关闭“小按钮?
- 运行参数怎么取呀
- 如何实现静态同步安全?高手来看
- 请大家指教,OleDbParameter的使用问题
- access数据库连接问题,很不明白,在线等
- 请问如何在WPF和Listview中处理按住Ctrl或Shift多选后拖拽的问题?如何使得在拖拽的时候,之前用Ctrl选中的Item继续处于选中状态??!!
当然要用 多线程.
不然 一直等待 循环了啊
有的时候,运行一些javascript的时候,就会出现网页假死现象
比如通过js创建一个excel对象,然后通过该js打开一个web上的excel(通过文件留发送excel)
网页就停顿了,机子慢的话,还要不少时间呢。
不知道有没有办法通过多线程解决
====================================
不是!
是用winfrom作个浏览器。
至于WebForm下的Tab浏览的效果,肯定是用到多线程的。不过不是你来写的,是由浏览器自动完成的。有些浏览器会在解释html或者js代码的时候出现界面停止响应的现象,是浏览器做的不健壮,代码不规范。楼上的说的很对,数据没有读完,是不能生成页面的。
BS运行原理是从服务器下载下来代码,并由浏览器解释执行。WebForm的多线程最多的效率是在取代码上,对用户界面的显示是没有直接的帮助的。
====================================
不是!
是用winfrom作个浏览器。===============
那肯定要用异步了,一个tab一个线程,管理一个页面
但这个问题 好像没争论到一起去
刚才我用 TAB控件+Microsoft Web Browser 试了一下不会出现任何UI假死,那是因为WebBrowser本身的方法应该是异步的.
如果是自己读取网页数据来显示的话 那就会出现假死 毕竟是单线程
不过楼长所说的循环问题 到是很好解决的
Application.DoEvents() 这个方法处理当前在消息队列中的所有 Windows 消息//MSDN写的很详细
int i;
while(true)
{
i=0;
Application.DoEvents();
}
//系统会相应任何界面的重画,这在接收大数据时是很实际的写法 我想这应该是 UI线程的技巧吧
你多线程也不是多ui线程