zoukankan      html  css  js  c++  java
  • Asp.Net多线程小实验

    aspx页面
    <form id="form1" runat="server">
        
    <div>
            
    <asp:ScriptManager ID="ScriptManager1" runat="server">
            
    </asp:ScriptManager>
        
        
    </div>
            
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                
    <ContentTemplate>
            
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="执行耗时操作" /><br />
            
    &nbsp;&nbsp;
                    
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Ping" />
                    
    <asp:Timer ID="Timer1" runat="server" Enabled="False" Interval="1000" OnTick="Timer1_Tick">
                    
    </asp:Timer>
                    
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                
    </ContentTemplate>
            
    </asp:UpdatePanel>
            
    <input id="Text1" type="text" />
        
    </form>

    public partial class ThreadTest : System.Web.UI.Page
    {
        public static int Counter = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Counter = 0;
                Timer1.Enabled = false;
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Timer1.Enabled = true;
            DateTime dtStart = DateTime.Now;

            NewThreadWork newThreadWork = new NewThreadWork();
            newThreadWork.ThreadStart += new System.Threading.ThreadStart(LongTimeOpt);
            newThreadWork.Run();

            TimeSpan ts = DateTime.Now - dtStart;
            this.TextBox1.Text = ts.Milliseconds.ToString();
        }


        private void LongTimeOpt()
        {
            int totle = 100000000;
            for (int i = 0; i < totle; i++)
            {
                for (int j = 0; j < totle; j++)
                    Counter = i;
            }
        }

      
        protected void Button2_Click(object sender, EventArgs e)
        {
            this.TextBox2.Text = Counter.ToString();
        }

        public class NewThreadWork
        {
            private static object obj = new object();
            public System.Threading.ThreadStart ThreadStart;

            public void Run()
            {
                lock (obj)
                {
                    System.Threading.Thread thread = new System.Threading.Thread(ThreadStart);
                    thread.Start();
                }
            }
        }
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            this.TextBox2.Text = Counter.ToString();
        }
    }

  • 相关阅读:
    redis性能优化——生产中实际遇到的问题排查总结
    Redis优化经验
    Python 发送 email 的两种方式
    封装简单的equery
    Mobiscroll的介绍【一款兼容PC和移动设备的滑动插件】
    css3毛玻璃模糊效果
    环形进度条的实现方法总结和动态时钟绘制(CSS3、SVG、Canvas)
    CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦
    盘点8种CSS实现垂直居中水平居中的绝对定位居中技术
    CSS 去掉inline-block间隙的几种方法
  • 原文地址:https://www.cnblogs.com/luqingfei/p/1724402.html
Copyright © 2011-2022 走看看