62,046
社区成员
发帖
与我相关
我的任务
分享
class Program
{
static void Main(string[] args)
{
TestClass2 tc = new TestClass2();
ParameterizedThreadStart para = new ParameterizedThreadStart(tc.Test);
Thread t1 = new Thread(para);
Thread t2 = new Thread(para);
t1.Start(200);
t2.Start(100);
Console.ReadKey();
}
}
public class TestClass2
{
public int B { get; set; }
public void Test(object o1)
{
int i1 = (int)o1;
B = i1;
Thread.Sleep(i1);//第一个线程停200毫秒,等待第二个给B赋,观察第一个线程中的值是否被改变
Console.WriteLine(B);//测试结果得出,两个线程执行结果一样,同为200或同为100,线程之间出现干扰情况
}
}
public partial class test2 : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
TestClass2 t = new TestClass2();
t.Test(int.Parse(this.TextBox1.Text), Page);//TextBox1的值第一个用户请求为5000,第二个为1
Response.End();
}
}
public class TestClass2
{
public int B { get; set; }
public void Test(int i, Page page)
{
B = i;
Thread.Sleep(i);//第一个用户请求停5000毫秒,等待第二个用户给B赋,观察第一个请求中的值是否被改变
page.Response.Write("B:" + B);//测试结果得出,第一个请求输出5000,第二个请求输出1
}
}