2

J'ai une application .NET CF 3.5 qui fonctionne sur Motorola WT41N0 (Windows CE 7). Parfois, il obtient l'exception suivante:ApplicationException à System.Threading.EventWaitHandle..ctor dans .NET CF 3.5

System.ApplicationException: ApplicationException 
    at System.Threading.EventWaitHandle..ctor(Boolean initialState, EventResetMode mode) 
    at System.Threading.ManualResetEvent..ctor(Boolean initialState) 

L'exception se produit à un certain nombre d'endroits différents. Parfois, il se produit dans l'API du lecteur de codes à barres Motorola (Symbol.Barcode2). Il se produit également au code suivant:

private void Transmitter_StatusChanged(object sender, TransmitStatusChangedEventArgs e) 
{ 
    Invoke(() => 
    { 
     UpdateScanStatus(); 
    }); 
} 

c'est la UpdateScanStatus Méthode:

private void UpdateScanStatus() 
{ 
    int unsent = THSData.Transmitter.PendingScans; 
    string unsentText = string.Format("Unsent Scans:{0}", unsent); 
    if (lblUnsent.Text != unsentText) 
     lblUnsent.Text = unsentText; 

    if (HeaderBarWarning != unsent > 0) 
    { 
     lblUnsent.Visible = unsent > 0; 
     UpdateHeaderBar(unsent > 0); 
    } 
} 

est ici la trace complète de la pile pour cet exemple:

Fatal Error System.ApplicationException: ApplicationException 
    at System.Threading.EventWaitHandle..ctor(Boolean initialState, EventResetMode mode) 
    at System.Threading.ManualResetEvent..ctor(Boolean initialState) 
    at System.Windows.Forms.Control.TASK.get_AsyncWaitHandle() 
    at System.Windows.Forms.Control.InvokeHelper(Delegate method, Boolean fSynchronous, Object[] rgobjArgs) 
    at CoreTT.Scanner.THS.UI.Pages.PageLogin.Transmitter_StatusChanged(Object sender, TransmitStatusChangedEventArgs e) 
    at CoreTT.Scanner.Common.DataAccess.BaseTransmitter.InvokeStatusChange(String oldStatus, String newStatus, Object statusObject) 
    at CoreTT.Scanner.Common.DataAccess.BaseTransmitter.set_Status(String value) 
    at CoreTT.Scanner.Common.DataAccess.BaseTransmitter.Transmit() 
    at CoreTT.Scanner.Common.DataAccess.BaseTransmitter.timer_TimerCallback(Object state) 
    at System.Threading.Timer.ring() 

Est-ce que quelqu'un sait ce qui pourrait provoquer l'erreur.

+0

S'il vous plaît poster un code où est survenu cette exception plz – HungPV

Répondre

0

Cette erreur semble se produire lorsque le système manque de mémoire. Il y avait une fuite de mémoire dans le logiciel et puisque cela a été corrigé, l'exception ne semble plus se produire.