C# 当前进程没有线程?

C# 当前进程没有线程?,c#,multithreading,unity3d,mono,C#,Multithreading,Unity3d,Mono,我尝试在Unity中设置线程的处理器亲缘关系,正如这里所讨论的: 但是,以下方法始终打印“进程线程数=0”。创建和启动手动线程不会更改结果: void Start() { System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess(); Debug.Log("Process Thread Count = " + process.Threads.Count); } 因此,没有

我尝试在Unity中设置线程的处理器亲缘关系,正如这里所讨论的:

但是,以下方法始终打印“进程线程数=0”。创建和启动手动线程不会更改结果:

void Start()
{
    System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess();

    Debug.Log("Process Thread Count = " + process.Threads.Count);
}

因此,没有线程可以设置关联性。我做错什么了吗?我使用的是基于Mono 2.0.50727.1433的Unity 4.5.1f3

好吧,这是一只虫子!几天前我创建了一个bug报告,今天我得到了以下答案:

“[…]我们已修复此问题,[此]问题将不会出现在下一个主要版本中。[…]”


现在我很好奇下一个主要版本是什么。

Affinity是线程将使用多少内核。如果亲和性等于2,并且有4个线程,那么其中只有一个线程会在某一时刻使用CPU,它们将被切换。线程数不依赖于亲和性。亲和性仅限制活动线程数,但总计数可能比亲和性大得多number@Sergey当前位置我不太明白你写了什么。据我所知,关联性是指允许线程在哪些内核上运行。然而,这甚至不影响我的问题。为什么当前进程中没有线程?不应该至少有一个吗?是的,你是对的。但线程的数量可能比内核的数量大得多。因此,
process.Threads.Count
不依赖于亲和性。是的,
Thread.Count
不应等于0。在.Net应用程序中,根据应用程序类型,至少有2-3个线程。On是主线程,另一个用于GC。也许是某个单一问题?还是权限问题?@Sergey:我知道线程的数量可以大于(通常大于)内核的数量,并且线程数不取决于关联性,但我需要访问当前进程的所有线程,以找到与我要设置关联性的当前托管线程相对应的ProcessThread。不过,感谢您提示这是一个Mono或权限问题。您是否尝试过如上所述的
process.Refresh()