Example of Simulating concurrent requests

来源:互联网 发布:java中圆周率怎么表示 编辑:程序博客网 时间:2024/04/30 01:02
        protected slaresearch.WebService1SoapClient client;        protected monitor.monitorSoapClient monitor;        protected void Page_Load(object sender, EventArgs e)        {            client = new slaresearch.WebService1SoapClient();            monitor = new monitor.monitorSoapClient();            if (Session["txt1"] == null)            {                Session.Add("txt1", "");                Session.Add("txt2", "");            }            else            {                this.txt1 = (String)Session["txt1"];                this.txt1 = (String)Session["txt2"];            }        }        private void run1()        {            DateTime start = monitor.getHostDatetime();            String fabo40 = client.fabonacci(40).ToString();            DateTime end = monitor.getHostDatetime();            TimeSpan duration = end.Subtract(start);            txt1 = "fabonacci at 40 is " + fabo40                        + "<br/>Start:" + start.ToString()                        + "<br/>End:" + end.ToString()                        + "<br/>Duration:" + duration.TotalSeconds.ToString() + "s";            Session["txt1"] = txt1;        }        private void run2()        {            DateTime start = monitor.getHostDatetime();            String fabo40 = client.fabonacci(40).ToString();            DateTime end = monitor.getHostDatetime();            TimeSpan duration = end.Subtract(start);            txt2 = "fabonacci at 40 is " + fabo40                        + "<br/>Start:" + start.ToString()                        + "<br/>End:" + end.ToString()                        + "<br/>Duration:" + duration.TotalSeconds.ToString() + "s";            Session["txt2"] = txt2;        }        private String txt1, txt2;        protected void Button1_Click(object sender, EventArgs e)        {            Thread t = new Thread(new ThreadStart(this.run1));            t.Start();        }        protected void Button2_Click(object sender, EventArgs e)        {            Thread t = new Thread(new ThreadStart(this.run2));            t.Start();        }        protected void Button3_Click(object sender, EventArgs e)        {            Button1_Click(sender, e);            Button2_Click(sender, e);        }        protected void Button4_Click(object sender, EventArgs e)        {            Label1.Text = (String)Session["txt1"];            Label2.Text = (String)Session["txt2"];        }



NOTICE:

IF YOU WANT TO CONCURRENTLY START MORE THAN 1 THREAD, YOU HAVE TO CREATE EVERYTHING IN YOUR PROCESS.

FOR EXAMPLE:

        private void runall()        {            monitor.monitorSoapClient m = new monitor.monitorSoapClient();            slaresearch.WebService1SoapClient nc = new slaresearch.WebService1SoapClient();            DateTime start = m.getHostDatetime();                        String fabo40 = nc.fabonacci(40).ToString();            DateTime end = m.getHostDatetime();            TimeSpan duration = end.Subtract(start);            String tmp = "fabonacci at 40 is " + fabo40                        + "<br/>Start:" + start.ToString()                        + "<br/>End:" + end.ToString()                        + "<br/>Duration:" + duration.TotalSeconds.ToString() + "s<br/>";            Session["all"] = Session["all"] + tmp;        }