我在某论坛发言
“如果不用多线程,当网页A不打开完毕的时候,根本不可能动界面里面的任何东西。”--实现Tab选项卡界面的web浏览器效果。回帖:“还是回去好好学编程吧,不到半瓶子就出来晃了。你可以把你这个帖子留下,过2年再看看,看看到时候是不是会觉得自己像个小白。当然,过了2年要是还没什么进步,那当我没说”“楼上说话请不要太打击人了.
winner2050 只是不知道 UI 多线程和任务多线程的区别.
当然一般 UI 多线程的软件也很少见, 大多数开发人员也不会用到.闻道有先后, 术业有专攻. 让别人知道, 比单纯鄙视更有意义. ”他们说得那么理直气壮的,到底谁对。我都晕了。我测试了一下
用tab控件在tab1里面的按钮运行一个非常长的循环真的是界面假死了,如果用多线程就能边运行,边切换其他的tab选项卡。

解决方案 »

  1.   

    我也糊涂了,我得去试试,这不是典型的winform进程问题?
      

  2.   

    winform?
    当然要用 多线程.
    不然 一直等待 循环了啊
      

  3.   

    不知道网页多线程怎么弄,
    有的时候,运行一些javascript的时候,就会出现网页假死现象
    比如通过js创建一个excel对象,然后通过该js打开一个web上的excel(通过文件留发送excel)
    网页就停顿了,机子慢的话,还要不少时间呢。
    不知道有没有办法通过多线程解决
      

  4.   

    WebForm上用多线程有意义吗?数据都没读完,怎么生成网页?还请来点真实例。
      

  5.   

    WebForm上用多线程有意义吗?数据都没读完,怎么生成网页?还请来点真实例。
    ====================================
    不是!
    是用winfrom作个浏览器。
      

  6.   

    晕撒,如果是BS模式的,根本不要开线程,IIS是干啥的?就是帮你优化线程的。
    至于WebForm下的Tab浏览的效果,肯定是用到多线程的。不过不是你来写的,是由浏览器自动完成的。有些浏览器会在解释html或者js代码的时候出现界面停止响应的现象,是浏览器做的不健壮,代码不规范。楼上的说的很对,数据没有读完,是不能生成页面的。
    BS运行原理是从服务器下载下来代码,并由浏览器解释执行。WebForm的多线程最多的效率是在取代码上,对用户界面的显示是没有直接的帮助的。
      

  7.   

    WebForm上用多线程有意义吗?数据都没读完,怎么生成网页?还请来点真实例。
    ====================================
    不是!
    是用winfrom作个浏览器。===============
    那肯定要用异步了,一个tab一个线程,管理一个页面
      

  8.   

    崩溃了!我是不是说在webfrom里面搞多线程,而是实现多个网页在Tab切换的,跟IE7 、FF、TT、Maxthon 这种浏览器一样的。你们扯到哪里去了。
      

  9.   

    在winform里 异步 线程当然是很好的解决方案
    但这个问题 好像没争论到一起去
    刚才我用 TAB控件+Microsoft Web Browser 试了一下不会出现任何UI假死,那是因为WebBrowser本身的方法应该是异步的.
    如果是自己读取网页数据来显示的话 那就会出现假死 毕竟是单线程
    不过楼长所说的循环问题 到是很好解决的
    Application.DoEvents() 这个方法处理当前在消息队列中的所有 Windows 消息//MSDN写的很详细
    int i;
    while(true)
    {
    i=0;
    Application.DoEvents();
    }
    //系统会相应任何界面的重画,这在接收大数据时是很实际的写法 我想这应该是 UI线程的技巧吧
      

  10.   

    WebForm一般是异步,WinForm是多线程
      

  11.   

    赢什么啊,ui线程就只有一个
    你多线程也不是多ui线程