FIX: Eccezione quando più thread chiama la funzione di run-time "atexit" C contemporaneamente in Windows Embedded Compact 7

Introduzione

In questo articolo viene descritto un problema in cui unn eccezione si verifica quando più thread chiama la funzione di runtime "atexit" C contemporaneamente in Windows Embedded Compact 7. Un aggiornamento è disponibile per risolvere il problema. Prima di installare questo aggiornamento, è necessario installare tutti gli aggiornamenti rilasciati in precedenza per questo prodotto.

Sintomi

Quando più thread chiama la funzione di runtime atexit C contemporaneamente in Windows Embedded Compact 7, potrebbe verificarsi un'eccezione. L'eccezione si verifica quando il codice che chiama la funzione atexit non viene serializzato o quando la funzione atexit viene inserita dal compilatore.

Causa

Il problema si verifica perché la funzione di atexit C Run time non è thread-safe. Pertanto, la tabella di memoria che utilizza la funzione è danneggiata.

Risoluzione

Informazioni sull'aggiornamento del software

Un aggiornamento supportato è ora disponibile da Microsoft come aggiornamento mensile di Windows Embedded Compact 7, (giugno 2017).

Nota: Il Windows Embedded Compact 7 aggiornamento mensile è disponibile per il download dal seguente sito Web Microsoft Download Center:

Windows Embedded Compact 7 aggiornamenti per la

Prerequisiti

Questo aggiornamento è supportato solo se tutti gli aggiornamenti rilasciati in precedenza per questo prodotto sono inoltre stati installati.

Richiesta di riavvio

Dopo avere applicato questo aggiornamento, è necessario eseguire una generazione pulita dell'intera piattaforma. A tale scopo, utilizzare uno dei seguenti metodi:

  • Fare clic su Pulisci soluzionedal menu Genera e quindi scegliere Genera soluzione.

  • Scegliere Ricompila soluzione dal menu Compila .

Non è necessario riavviare il computer dopo avere applicato questo aggiornamento software.

Informazioni sulla sostituzione dell'aggiornamento

Questo aggiornamento non sostituisce eventuali altri aggiornamenti.

Informazioni sui file

Poiché si tratta di una versione a onda intera. Quasi tutti i file binari sono interessati da questa versione.

i seguenti file di origine sono interessati da questa versione::

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

Ulteriori informazioni

In un ambiente multithread, le tabelle di funzione di atexit potrebbero essere danneggiate da un'altra chiamata atexit causa non thread safe. Questo può causare il danneggiamento della memoria ed eccezioni. La funzione atexit è utilizzata per registrare una routine che verrà eseguita quando il programma si chiude o si scarica un file DLL. Il difetto nel thread-safe può comportare la modifica di questa routine di uscita e il danneggiamento delle tabelle di funzione di uscita.

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×