Приложение: UDPBroad.exe Framework Версия: v4.0.30319 Описание:
Процесс был прерван из-за необработанного исключения. Исключение
Информация: System.AccessViolationException в Program.ExecCMUQry() в
System.Threading.ThreadHelper.ThreadStart_Context(System.Object) в
System.Threading.ExecutionContext.RunInternal(System.Threading. ExecutionContext,
System.Threading.ContextCallback, System.Object, логическое значение) в
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) в
System.Threading.ExecutionContext.Run(System. Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object) в
System.Threading.ThreadHelper.ThreadStart()
Мой код
Код: Выделить всё
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();
}
}
и QuFUTEQ1401 представляют собой очередь
Я добавил блокировку, но мое приложение аварийно завершает работу из-за ресурсов памяти, какой еще подход мне следует сделать?
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-c-sharp
Мобильная версия