Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
Vb.net 零是可能的ManagedThreadID吗_Vb.net_Multithreading - Fatal编程技术网

Vb.net 零是可能的ManagedThreadID吗

Vb.net 零是可能的ManagedThreadID吗,vb.net,multithreading,Vb.net,Multithreading,我使用ManagedThreadId跟踪线程集合。这允许我的上下文对象知道哪些线程在为它们工作 然而,我希望上下文对象能够测试是否有线程在为它们工作。由于ID只是整数,我可以测试值是否为零。但是零是一个可能的线程ID吗 显然,如果是这样,那么测试一个线程是否被“分配”去做一些上下文工作将意味着这种快速检查是不好的,我需要检查线程(看看它们都在使用什么上下文)。谢谢。你不必担心零。它是为空闲线程保留的。它是未记录的。如果SSCLI20实现对于您使用的CLR版本仍然是准确的,那么可能性非常高,那么可

我使用ManagedThreadId跟踪线程集合。这允许我的上下文对象知道哪些线程在为它们工作

然而,我希望上下文对象能够测试是否有线程在为它们工作。由于ID只是整数,我可以测试值是否为零。但是零是一个可能的线程ID吗


显然,如果是这样,那么测试一个线程是否被“分配”去做一些上下文工作将意味着这种快速检查是不好的,我需要检查线程(看看它们都在使用什么上下文)。谢谢。

你不必担心零。它是为空闲线程保留的。

它是未记录的。如果SSCLI20实现对于您使用的CLR版本仍然是准确的,那么可能性非常高,那么可以假设0不是有效的ManagedThreadId。clr/src/vm/threads.h中的内部IdDispenser助手类使用其NewId()函数生成托管线程ID。它使用返回值0作为错误指示。

这不是托管线程,thread.ManagedThreadId!=Windows线程ID。如何查找这些内容?我一直在搜索MSDN库,以获得关于ThreadID的任何深入信息(以及其他类似的信息),但它似乎总是对相关细节非常了解……正如我所说的,它是未记录的。所以你在某某问:)