Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用匿名方法设置线程名称?_C#_.net_Multithreading - Fatal编程技术网

C# 如何使用匿名方法设置线程名称?

C# 如何使用匿名方法设置线程名称?,c#,.net,multithreading,C#,.net,Multithreading,我有以下代码来运行匿名线程方法的指令 new Thread(delegate() { //my code }).Start(); 出于调试的目的,我想在上面的场景中设置线程名称,我如何才能做到这一点 谢谢 或者让我们让它可读 var thread = Thread(delegate() { //my code }); thread.Name = "whatever"; thre

我有以下代码来运行匿名线程方法的指令

new Thread(delegate()
    {
        //my code
    }).Start();
出于调试的目的,我想在上面的场景中设置线程名称,我如何才能做到这一点

谢谢

或者让我们让它可读

var thread = Thread(delegate()
             {
                 //my code
             });
thread.Name = "whatever";
thread.Start();
或者让我们让它可读

var thread = Thread(delegate()
             {
                 //my code
             });
thread.Name = "whatever";
thread.Start();

委托与线程名称无关:

Thread t = new Thread(delegate()
{
    //my code
});

t.Name = "ThreadName";
t.Start();

委托与线程名称无关:

Thread t = new Thread(delegate()
{
    //my code
});

t.Name = "ThreadName";
t.Start();


你有三个选择

  • 不要将
    .Start()
    放在同一行上
  • 编写一个扩展方法
  • (我甚至没想过要这么做,在写我的答案时看到了答案。)

    • 您有三种选择

      • 不要将
        .Start()
        放在同一行上
      • 编写一个扩展方法
      • (我甚至没想过要这么做,在写我的答案时看到了答案。)

      @mclaassen不幸的是,我达到了我的声誉上限(@SriramSakthivel我认为这是一个“第一世界问题”ahah@TopinFrassi我正要说完全一样的话!@mclaassen不幸的是,我达到了我的声誉上限:(@SriramSakthivel我会说这是一个“第一世界的问题”ahah@TopinFrassi我正要说同样的话!
      var thread = new Thread(delegate()
          {
              //my code
          });
      thread.Name = "MyName";
      thread.Start();
      
      static void Start(this Thread thread, string name)
      {
          thread.Name = name;
          thread.Start();
      }
      
      //Elsewhere
      new Thread(delegate()
      {
          //my code
      }).Start("MyName");