Korriger: Unntak når flere tråder kaller funksjonen C kjøring "atexit" på samme tid i Windows Embedded kompakt 7

Introduksjon

Denne artikkelen beskriver et problem der enn unntak oppstår når flere tråder kaller funksjonen C kjøring "atexit" på samme tid i Windows Embedded kompakt 7. En oppdatering er tilgjengelig for å løse dette problemet. Før du installerer denne oppdateringen, må alle tidligere utgitte oppdateringer for dette produktet installeres.

Symptomer

Når flere tråder kaller funksjonen C kjøretid atexit på samme tid i Windows Embedded kompakt 7, kan det oppstå et unntak. Unntaket oppstår når koden som kaller opp funksjonen atexit ikke serialiseres eller når atexit -funksjonen settes inn av kompilatoren.

Årsak

Dette problemet oppstår fordi C-Run time atexit -funksjonen ikke er trådsikker. Derfor er minne-tabellen bruker funksjonen skadet.

Løsning

Informasjon om programvareoppdatering

En støttet programvareoppdatering er nå tilgjengelig fra Microsoft som kompakt 7 månedlige oppdateringen for Windows Embedded (juni 2017).

Obs! Denne Windows innebygde kompakt 7 månedlige oppdateringen lastes ned fra følgende webområde for Microsoft Download Center:

Innebygd kompakt 7 oppdateringer i Windows

Forutsetninger

Denne oppdateringen støttes bare hvis alle tidligere utgitte oppdateringer for dette produktet er installert.

Krav om omstart

Når du har installert denne oppdateringen, må du utføre et rent Bygg av hele plattformen. Hvis du vil gjøre dette, bruker du én av følgende metoder:

  • Klikk Praktisk løsningLag -menyen, og klikk deretter Bygge løsningen.

  • Klikk Bygge løsningenLag -menyen.

Du har ikke datamaskinen på nytt etter at du har brukt denne programvareoppdateringen.

Informasjon om erstatning av oppdatering

Denne oppdateringen erstatter ikke andre oppdateringer.

Filinformasjon

Dette er en full wave-versjon. Nesten alle binærfilene er berørt av denne utgaven.

Følgende kildefilene er berørt av denne versjonen::

private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c

Mer informasjon

I et miljø med multithread bli funksjonen tabellene med atexit skadet av et annet atexit-kall på grunn av ikke-tråden sikkerhet. Dette kan føre til minnefeil og unntak. Atexit -funksjonen brukes til å registrere en rutine som skal utføres når programmet avsluttes eller laster ut en DLL-fil. Feil i tråden sikkerhet kan føre til endring av rutinen exit og ødeleggelse av Avslutt-funksjonen tabellene.

Referanser

Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×