关于C#多线程的学习和一点疑惑
2015-03-12 20:35
561 查看
最近在看C#的多线程编程,看到一个个人觉得有点意思的东西。
先看代码:
static int testInt = 0;
static void Main(string[] args)
{
Thread t = new Thread(WriteY);
t.Name = "MyThred";
t.IsBackground = false;
t.Start();
t.Join();
//String threadState = t.ThreadState;
while (true)
{
Thread.Sleep(100);
Console.Write("a" + testInt.ToString() + "b");
testInt++;
}
}
static void WriteY()
{
int mark = 0;
while (true)
{
//Thread.CurrentThread.Join();
Thread.Sleep(100);
Console.Write(testInt.ToString());
mark++;
}
}
在这里我调用了Join方法阻塞一个线程。
一开始我以为阻塞的应该是t,但是很不幸,程序打印出来的结果是 000000000000000000000000。。。这样一连串的0
看来阻塞的是主线程,这跟以前编程的习惯完全不符!!!
笔者暂时没有找到为什么会出现这样的结果。
当然,由于笔者初学,可能出现了理解上的错误,如果有大神看到,希望能留下足迹。
先看代码:
static int testInt = 0;
static void Main(string[] args)
{
Thread t = new Thread(WriteY);
t.Name = "MyThred";
t.IsBackground = false;
t.Start();
t.Join();
//String threadState = t.ThreadState;
while (true)
{
Thread.Sleep(100);
Console.Write("a" + testInt.ToString() + "b");
testInt++;
}
}
static void WriteY()
{
int mark = 0;
while (true)
{
//Thread.CurrentThread.Join();
Thread.Sleep(100);
Console.Write(testInt.ToString());
mark++;
}
}
在这里我调用了Join方法阻塞一个线程。
一开始我以为阻塞的应该是t,但是很不幸,程序打印出来的结果是 000000000000000000000000。。。这样一连串的0
看来阻塞的是主线程,这跟以前编程的习惯完全不符!!!
笔者暂时没有找到为什么会出现这样的结果。
当然,由于笔者初学,可能出现了理解上的错误,如果有大神看到,希望能留下足迹。
相关文章推荐
- c# 关于Task类处理多线程的学习
- c#学习中关于new和override的一点小结
- c# 关于Task类处理多线程的学习
- c# 关于Task类处理多线程的学习
- 关于C#中AutoResetEvent和ManualResetEvent的一点学习心得
- 关于framebuffer这几天学习的一点心得体会和疑惑
- C# 关于多线程的一点事
- 关于C#中AutoResetEvent和ManualResetEvent的一点学习心得
- 关于C#多线程、网络编程与计时器Timer的一点使用心得
- 关于51单片学习的一点心得
- 关于Oracle 游标返回值 在C#中的运用(引用自www.souzz.net,个人学习参考用)
- C#关于"该进程无法访问文件,因为该文件正由另一进程使用"的错误的一点心得(示例)
- 关于学习CCNA的一点经验总结
- 计算机学习笔记2:关于微程序的一点己见
- 关于C#发送邮件的一点体会
- 关于DNN Module开发学习以来的一点总结
- 关于学习编程的一点想法
- 关于语言学习的一点感想
- 关于datatable的一点学习感想
- 关于C#发送邮件的一点体会