Dela via


Förgrunds- och bakgrundstrådar

En hanterad tråd är antingen en bakgrundstråd eller en förgrundstråd. Bakgrundstrådar är identiska med förgrundstrådar med ett undantag: en bakgrundstråd håller inte den hanterade körningsmiljön igång. När alla förgrundstrådar har stoppats i en hanterad process (där filen .exe är en hanterad sammansättning) stoppas alla bakgrundstrådar och stängs av.

Kommentar

När körningen stoppar en bakgrundstråd eftersom processen stängs av genereras inget undantag i tråden. Men när trådar stoppas på grund av AppDomain.Unload att metoden tar bort programdomänen genereras en ThreadAbortException i både förgrunds- och bakgrundstrådar.

Använd egenskapen Thread.IsBackground för att avgöra om en tråd är en bakgrund eller en förgrundstråd, eller för att ändra dess status. En tråd kan när som helst ändras till en bakgrundstråd genom att dess egenskap anges IsBackground till true.

Viktigt!

Förgrunds- eller bakgrundsstatusen för en tråd påverkar inte resultatet av ett ohanterat undantag i tråden. Ett ohanterat undantag i antingen förgrundstrådar eller bakgrundstrådar resulterar i att programmet avslutas. Se Undantag i hanterade trådar.

Trådar som tillhör den hanterade trådpoolen (dvs. trådar vars IsThreadPoolThread egenskap är true) är bakgrundstrådar. Alla trådar som anger den hanterade körningsmiljön från ohanterad kod markeras som bakgrundstrådar. Alla trådar som genereras genom att skapa och starta ett nytt Thread objekt är som standard förgrundstrådar.

Om du använder en tråd för att övervaka en aktivitet, till exempel en socketanslutning, anger du dess IsBackground egenskap så true att tråden inte hindrar processen från att avslutas.

Se även