2012-04-19 21 views
5
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)); 
    } 


encima en mi código que utilizo AsParallel(). Cualquier() ¿Cómo puedo obtener ID del hilo de rosca generado por esa AsParellel.Any() ...Como llegar ID del tema en C#

+0

¿Por qué quieres saber eso? – svick

Respuesta

11

Thread.CurrentThread.ManagedThreadId obtiene la identificación del subproceso administrado del subproceso que se está ejecutando actualmente.

Si desea obtener el ID del hilo nativo en lugar (no es algo que normalmente quiere hacer), puede llamar al método AppDomain.GetCurrentThreadId() (obsoleto "ya que no proporciona una identificación estable cuando subprocesos administrados se están ejecutando en fibras", sino como Hasta donde sé, los hilos administrados solo se ejecutan en fibras dentro de SQL Server).

+1

Para encontrar el Id del hilo que se ejecuta actualmente en el caso anterior, tengo que escribir Thread.CurrentThread.ManagedThreadId en AsParallel(). Any (item => {// aquí supongo //}); pero esa línea no funciona porque esa línea solo contiene predicado. – Recawo

+1

@Recawo: ¿Pero qué es lo que quieres hacer? De todos modos, puede crear fácilmente un predicado que consulte el ID del hilo actual ya sea envolviéndolo en una función o escribiéndolo en línea como este 'item => {... C# statements ...; resultado de devolución; } ' –

Cuestiones relacionadas