, spor er defineret som gennemførelsen i retning af et program.hver tråd definerer en enestående strøm af kontrol.hvis din ansøgning er kompliceret og tidskrævende aktiviteter som f.eks. adgang til databaser eller nogle intense i /o - operationer, er det ofte nyttigt at fastsætte forskellige gennemførelse veje eller tråde, med hver tråd, der udfører en særlig opgave, tråde er let processer.en fælles eksempel på anvendelse af tråd er gennemførelsen af fælles programmering af moderne driftssystemer.anvendelse af tråde redder spild af cpu kredsløb og øger effektiviteten af en ansøgning, så vidt vi har udarbejdet programmer, hvor en enkelt tråd, løber som en enkelt proces, som er, at tilfælde af ansøgningen.men på denne måde anvendelsen kan udføre et job på en gang.for at gøre det gennemføre flere opgaver på en gang kan det være opdelt i mindre tråde. i. netto, gevindskæring håndteres gennem systemet. frxsning "namespace.at skabe en variabel i, system.threading.thread, type, giver dig mulighed for at oprette en ny tråd til at begynde at arbejde med.det giver dig mulighed for at oprette og adgang til enkelte tråde i et program, at tråd, spor er skabt ved at skabe en tråd genstand, at konstruktøren et threadstart reference. threadstart childthreat = nye threadstart (childthreadcall), tråd livscyklus, livscyklus i en tynd tråd begynder, når en genstand for system.threading.thread klasse skabte, og slutter, når den tråd er afsluttet eller supplerer henrettelse. efter de forskellige stater i en virksomheds livscyklus tråd:,,,,,,, unstarted stat. det er denne situation, når den instans i tråd er oprettet, men begyndelsen metode er ikke ringede.,,,,,,, klar stat: det er den situation, hvor den tråd er klar til at udføre og venter cpu kredsløb.,,,,,,, ikke runnable stat: en trådder er ikke runnable, når:,, sove - metoden er blevet kaldt, vent metode er blevet kaldt, blokeret af input /output - operationer,,,,, de døde stat. det er en situation, hvor den tråd har afsluttet gennemførelsen eller har været afbrudt.,,, tråd prioritet, de prioriterede ejendom af tråd klasse angiver prioritering af en tråd med hensyn til andre.det runtime. netto udvælger de klar tråd med højeste prioritet. de prioriteringer, der kan betegnes som:,, over det normale, under normale, højeste, laveste, normalt, når en tråd er skabt sin prioritering er fastsat ved hjælp af de prioriterede ejendom af tråd klasse. newthread. prioriterede = threadpriority. højeste. garn egenskaber &, metoder, den røde tråd i klasse har følgende vigtige egenskaber:,, ejendom, beskrivelse, currentcontext bliver den nuværende situation, hvor den tråd er gennemført.currentculture får eller opstiller kultur for den nuværende tråd.currentprinciple får eller fastsætter de tråde vigtigste nuværende for role-based sikkerhed.currentthread får i øjeblikket tråd.currentuiculture får eller fastsætter de nuværende kultur, der anvendes af personalechef se op kultur specifikke midler til løb.executioncontext får en executioncontext objekt, der indeholder oplysninger om de forskellige sammenhænge i den nuværende tråd.isalive får en værdi for gennemførelsen status af den nuværende tråd.isbackground bliver eller er en værdi, der angiver, hvorvidt en tråd er en baggrund tråd.isthreadpoolthread får en værdi, der angiver, hvorvidt en tråd, tilhører den forvaltes tråd pool.managedthreadid får en entydig identifikator for den nuværende forvaltes tråd.navn bliver eller er navnet på tråden.prioritet bliver eller er en værdi, som angiver tidsplanen prioritet i en tynd tråd.threadstate får en værdi, der indeholder de stater i den nuværende tråd.den tråd klasse har følgende vigtige metoder:,, metoder, beskrivelse, afbryd rejser en threadabortexception i tråd med, som det er gjort gældende, at indlede processen med ophævelse af tråd.til denne metode normalt bringer en tråd.allocatedataslot tildeler en anonym data plads på alle tråde.til bedre præstationer, brug for områder, der er markeret med threadstaticattribute attribut i stedet.allocatenameddataslot tildeler en ved navn data plads på alle tråde.til bedre præstationer, brug for områder, der er markeret med threadstaticattribute attribut i stedet.begincriticalregion meddeler en vært, at gennemførelsen er på vej ind i en region i kode, hvor virkningerne af en tråd, afbryde eller unhandled undtagelse kan udgøre en fare for andre opgaver på applikationsområdet.beginthreadaffinity meddeler en vært, som forvaltes kode er ved at udføre anvisninger, der afhænger af identiteten af de nuværende fysiske operativsystem tråd.endcriticalregion meddeler en vært, at gennemførelsen er på vej ind i en region i kode, hvor virkningerne af en tråd, afbryde eller unhandled undtagelse er begrænset til den aktuelle opgave.endthreadaffinity meddeler en vært, som forvaltes kode er færdige fuldbyrdende instrukser, der afhænger af identiteten af de nuværende fysiske operativsystem tråd.freenameddataslot fjerner associering mellem et navn og et slot, for alle tråde i processen.til bedre præstationer, brug for områder, der er markeret med threadstaticattribute attribut i stedet.getdata har værdi fra den foreskrevne plads på den nuværende tråd, inden for de nuværende tråde nuværende område.til bedre præstationer, brug for områder, der er markeret med threadstaticattribute attribut i stedet.getdomain returnerer den nuværende område, hvor den nuværende tråd er i gang.getdomainid returnerer et enestående applikationsområdet id.getnameddataslot ser en, der hedder data slot.til bedre præstationer, brug for områder, der er markeret med threadstaticattribute attribut i stedet.afbryder afbryder en tråd, der er i waitsleepjoin tråd.i blokerer kalder tråd indtil en tråd, ophører, samtidig med at udføre standard, kom og sendmessage pumper.denne metode har forskellige overbelastet former.memorybarrier synchronizes hukommelsen adgang som følger: den forarbejdningsvirksomhed, udfører den nuværende tråd ikke nye anvisninger på en sådan måde, at minde til forud for opfordringen til at memorybarrier henrette efter hukommelse adgangsveje, der følger den opfordring til at memorybarrier.resetabort annullerer en afbryd anmodede for det nuværende tråd.setdata sæt data i den foreskrevne plads på den igangværende tråd, at tråd er nuværende område.til bedre præstationer, brug felter mærket med threadstaticattribute attribut i stedet.først begynder nu.søvn er den tråd op i en periode.spinwait forårsager en tråd til at vente det antal gange, defineret af gentagelserne parameter.volatileread() læser værdien af et område.værdien er den seneste skriftlige af en forarbejdningsvirksomhed i en computer, uanset antallet af forarbejdningsvirksomheder eller staten forarbejdningsvirksomhed lager.denne metode har forskellige overbelastet former.volatilewrite() skriver en værdi og et område straks, således at værdien er synlig for alle forarbejdningsvirksomheder i computeren.denne metode har forskellige overbelastet former.udbytte forårsager kalder tråd til at give gennemførelse til en anden tråd, der er klar til at køre på den nuværende processor.styresystemet resulterer i tråd med udbytte.f.eks. følgende eksempel viser de anvendelser af tråd klasse.den side er en etiket kontrol til visning af meddelelser fra barnet tråd.meddelelser fra de vigtigste program er direkte vises ved hjælp af svar. write() metode.derfor anføres på toppen af side. den kilde fil er som følger:,, <% @ side language = "c #" autoeventwireup = "ægte" codebehind = "misligholdelse. aspx. cs" arver = "threaddemo. _default"% > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <h3>Thread Example</h3> </div> <asp:Label ID="lblmessage" runat="server" Text="Label"> </asp:Label> </form> </body> </html> ,The code behind file is as follows:, using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; anvendelse af systemet. net; anvendelse af system.web.security; anvendelse af system.web.ui; anvendelse af system.web.ui.htmlcontrols; anvendelse af system.web.ui.webcontrols; anvendelse af system.web.ui.webcontrols.webparts; anvendelse af system.xml.linq; anvendelse af systemet. frxsning. namespace threaddemo {offentlige delvis klasse _default: system.web.ui.page (beskyttede tomrum page_load (objekt afsender, eventargs e) (threadstart childthreat = nye threadstart (childthreadcall); svar. skrive ("barn tråd begyndte < br />"); sytråd barn = nye tråd (childthreat); barn. start(); svar. skrive ("vigtigste sover i 2 sekunder... < br />"); tråd. søvn (2000); svar. skrive (< br /> de vigtigste aborting - barn tråd < br /> "), barn. abort();} offentlige tomrum childthreadcall() (prøve (lblmessage. tekst =" < br /> barn tråd begyndte < br /> ". lblmessage. tekst + =" barn tråd: coiunting til 10. "; (int i = 0. jeg < 10 - + +) (tråd. søvn (500). lblmessage. tekst + =" < br /> i barn tråd < /br > "} lblmessage. tekst + =" < br /> barn tråd færdig "} fangst (threadabortexception e) (lblmessage. tekst + =" < br /> barn tråd - undtagelse "} endelig (lblmessage. text + = "< br /> barn tråd - ikke i stand til at fange undtagelse"}}}}, overholde følgende, når den side er ladt, et nyt spor er begyndt med henvisning til den metode, childthreadcall().den røde tråd aktiviteter er anbragt direkte på websiden.,,, det andet tråde løber og sender budskaber til etiketten.,,, hovedsageligt sover for 2000 ms, hvor barnet tråd henretter.,,, barnet tråde løber, indtil den er afbrudt af den røde tråd.det rejser threadabortexception og afsluttes.,,, kontrol, vender tilbage til de vigtigste tråd.,,, når gennemført program sender følgende meddelelser:,,
asp.net - multi - gevindskæring
Previous:asp.net - webtjenester
Next Page:asp.net - anvendelse