A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冰深 中级黑马   /  2013-1-21 11:10  /  3796 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冰深 于 2013-1-21 13:40 编辑

C#中为什么获取不到线程名称呢?
Sayhello s = delegate(int max)
            {
                for (int i = 1; i <= max; i++)
                {
                    Console.WriteLine("*"+ Thread.CurrentThread.Name+"-"+i);
                }
            };


这段代码执行后, Thread.CurrentThread.Name输出为空,也就是什么也不输出。在Java中类似的方法可以获取到诸如Thread-0的结果,为什么在这里什么都获取不到呢?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

8 个回复

正序浏览
要手动给新创建的线程起名字,才能获取线程的名字~
回复 使用道具 举报
冰深 发表于 2013-1-21 13:40
Java的我知道,楼上的已经回答了,我现在知道了。谢谢~

原来c#中要自己起名字啊,学习了~
回复 使用道具 举报
冰深 中级黑马 2013-1-21 13:40:18
7#
陈丽莉 发表于 2013-1-21 11:44
我只知道java中是Thread.CurrentThread.getName()而不是直接.Name
c#不清楚哈~ 不知道有没有帮助~ ...

Java的我知道,楼上的已经回答了,我现在知道了。谢谢~
回复 使用道具 举报
林嘉健 发表于 2013-1-21 11:30
你还没帮线程起名字呢。
Thread thread = new Thread();
thread.Name = "";

OH,thank u!真的是这样,我只知道Java中的线程名是系统命名,C#还不知道。
回复 使用道具 举报
我只知道java中是Thread.CurrentThread.getName()而不是直接.Name
c#不清楚哈~ 不知道有没有帮助~
回复 使用道具 举报
你还没帮线程起名字呢。
Thread thread = new Thread();
thread.Name = "";

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
许庭洲 发表于 2013-1-21 11:21
命令窗口会一闪而过,看不到调试的结果
Sayhello s = delegate(int max)
{

这个有,我有用ReadKey的,不是这个原因。结果输出的是Thread.CurrentThread.Name输出的为“”
回复 使用道具 举报
命令窗口会一闪而过,看不到调试的结果
Sayhello s = delegate(int max)
{
        for (int i = 1; i <= max; i++)
        {
               Console.WriteLine("*"+ Thread.CurrentThread.Name+"-"+i);
         }
}
Console.Read();//等待键盘输入,退出程序。使调试时能看到输出线程名称


评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马