如何在C#中获取线程ID

时间:2012-04-19 09:16:19

标签: c# task-parallel-library parallel-extensions

public bool HasItemsFromPropertySet(InfoItemPropertySet propertySet, CompositeInfoItem itemRemoved)
    {
        var itemAndSubItems = new InfoItemCollection();
        if (itemRemoved != null)
        {
            itemAndSubItems.Add(itemRemoved);
            //foreach (InfoItem item in itemRemoved.AllDescendants)
            itemAndSubItems.AddRange(itemRemoved.AllDescendants);
        }
        return AllItems.AsParallel().Any(item => item.PropertySet == propertySet && !itemAndSubItems.Contains(item));
    }


在我的代码中,我使用AsParallel()。Any() 如何获取AsParellel.Any()...

生成的线程的线程ID

1 个答案:

答案 0 :(得分:11)

Thread.CurrentThread.ManagedThreadId获取当前正在执行的线程的托管线程ID。

如果你想获得本机线程ID(不是你通常想做的事情),你可以调用方法AppDomain.GetCurrentThreadId()(已废弃“因为当托管线程在光纤上运行时它不提供稳定的ID “但据我所知,托管线程只在SQL Server内的光纤上运行。”