Handler für Zugriffsverletzungen in C#C#

Ein Treffpunkt für C#-Programmierer
Guest
 Handler für Zugriffsverletzungen in C#

Post by Guest »

Anwendung: UDPBroad.exe Framework Version: v4.0.30319 Beschreibung:
Der Prozess wurde aufgrund einer nicht behandelten Ausnahme beendet. Ausnahme
Info: System.AccessViolationException bei Program.ExecCMUQry() bei
System.Threading.ThreadHelper.ThreadStart_Context(System.Object) bei
System.Threading.ExecutionContext.RunInternal(System.Threading. ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) bei
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) at
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext ,
System.Threading.ContextCallback, System.Object) bei
System.Threading.ThreadHelper.ThreadStart()

Mein Code ist

Code: Select all

public void ExecCMUQry()
{
try
{
while (true)
{
while (QuFUTEQ1401.Count == 0) Thread.Sleep(100);
string Str = "";
lock (queueLock)
{
while (QuFUTEQ1401.Count >= intClearQueue)
{
for (int index = 1; index  0 ? "," : "") + (long)QuFUTEQ1401.Dequeue();
intClearCount = intClearCount + 1;
}
}
Str = "";
lock (queueLock)
{
int cnt = Math.Min(QuFUTEQ1401.Count, intBlim);
StringBuilder sb = new StringBuilder();
for (int i = 0; i  0)
ThrdCMcon.ExecuteQuerySP(Str);
}
}
}
catch (ThreadAbortException ex)
{
DataAccess.WriteELog($"Error: {ex.Message}");
Thread.ResetAbort();
}
catch (Exception ex)
{
DataAccess.WriteELog($"Error: {ex.Message}");
ExecCMUQry_Restart();
}

}
Während die Werte von intBlim=2000
und QuFUTEQ1401 eine Warteschlange sind
Ich habe eine Sperre hinzugefügt, stürzt meine Anwendung immer noch wegen Speicherressourcen ab. Welchen anderen Ansatz sollte ich wählen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post