Thread.Suspend on poistettu käytöstä. Käytä muita luokkia System.Threadingissä, kuten Monitor, Mutex, Event ja Semaphore, synkronoidaksesi säikeitä tai suojataksesi resursseja. Hyperlinkin kirjautuminen on näkyvissä. Thread.Resume on vanhentunut. Käytä muita luokkia System.Threadingissä, kuten Monitor, Mutex, Event ja Semaphore, synkronoidaksesi säikeitä tai suojataksesi resursseja. Hyperlinkin kirjautuminen on näkyvissä. Jos ketju haluaa pysäyttää tai jatkaa, olen käyttänyt kahta menetelmää, Suspend ja Resume, ja käytän näitä kahta menetelmää ketjun pyörittämiseen, mikä on itse asiassa ongelmallista, enkä välittänyt siitä silloin, joten otetaan se esiin ja opiskellaan sitä tänään!
Mikä on ongelma yllä mainittujen kahden menetelmän käytössä säikeiden keskeyttämiseen ja jatkamiseen?
Esimerkiksi, jos kutsumme Suspend -metodia säikeen keskeyttämiseksi ja sitten heti Resume-metodin jatkaaksemme keskeytettyä säikettä, voi olla ongelma.
Koska kun kutsut Suspend -metodin säikeen keskeyttämiseen, säie ei välttämättä keskeytetä heti, tässä prosessi vie käsittelyaikaa, jolloin kutsut välittömästi Resume-metodin jatkaaksesi keskeytettyä säikettä, ja ohjelma jumittuu välittömästi!
Microsoftin selitys on:
Älä käytä Suspend ja Resume -metodeja säikeiden toiminnan synkronointiin. Onko olemassa keinoa tietää, mitä koodia on, kun säikeen suoritus keskeytetään? Jos pidät lukkoa turvallisuusoikeuksien arvioinnin aikana, muut säikeet keskeytetyssä säikeessäsi AppDomainissa saatetaan estää. Jos keskeytät muita säikeitä AppDomainissa suorittaessasi luokkarakentajaa, yritykset käyttää luokkaa estyvät. Pattitilanteet voivat syntyä helposti.
// Yhteenveto: Jatka keskeytettyä lankaa. // Poikkeama: T:System.Threading.ThreadStateException: Säie ei ole käynnistetty, kuollut tai ei ole odotustilassa. // T:System.Security.SecurityException: Soittajalla ei ole asianmukaista System.Security.Permissions.SecurityPermission-tiedostoa. [Vanhentunut ("Thread.Resume on poistettu käytöstä. Käytä muita luokkia System.Threadingissä, kuten Monitor, Mutex, Event ja Semaphore, synkronoidaksesi säikeitä tai suojataksesi resursseja. Hyperlinkin kirjautuminen on näkyvissä.", väärin)] [SecuritySafeCritical] julkinen mitätöity Ansioluettelo(); Miten ratkaista tämä ongelma?
ManualResetEvent-luokka
Ilmoita yhdelle tai useammalle odottavalle säikeelle, että tapahtuma on tapahtunut. Tällaisia tyyppejä ei voi periä.
Testikoodi on seuraava:
|