web程序不能这么写的。得客户端轮询。你这样只会把服务器搞死的。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Text;
    namespace Webtestdatagridview
    {
        public partial class _Default : System.Web.UI.Page
        {
            public static int i = 0;
            public static int j = 0;
            private delegate void ShowMsg(string strMsg);
            private ShowMsg SM;
            static  DataTable dt = new DataTable();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (j == 0)
                {
                     dt.Columns.Add("yvalue", typeof(string));
                    dt.Rows.Add();
                    j++;
                }
                SM += new ShowMsg(SetLabel);
                
            }
            private void SetLabel(string strMsg)
            {            GridView1.DataSource = dt;
                GridView1.DataBind();
            }
            void tsetD(int m)
            {
                int i= 0;
                while (i<10)
                {
                    if (m == 0)
                    {
                        string  st = "dssd"; 
                        dt.Rows.Add();
                        dt.Rows[dt.Rows.Count - 1][0] = st;                    SM(st);
                        i++;
                    }
                    else if (m == 1)
                    {
                        string st = "aaaa";
                        dt.Rows.Add();
                        dt.Rows[dt.Rows.Count - 1][0] = st;
                        SM(st);
                        i++;
     
                    }     
                }
            }        protected void Button1_Click(object sender, EventArgs e)
            {
                this.tsetD(i);
                i++;
            }    }
    }
    我模拟了一下你想达到的效果,是可以实时更新的、、、
      

  2.   

    你这个不加委托都可以运行,但是放在线程中呢
    如下修改
            protected void Button1_Click1(object sender, EventArgs e)
            {
                //Sockelisten();
                Thread td = new Thread(new ThreadStart(startThread));
            }
            void startThread()
            { 
                while(true){
                    tsetD(1);
                    Thread.Sleep(5000);
                }
            }
    不就挂了