Ir para conteúdo
  • Cadastre-se

dev botao

ACBrPosPrinter com erro de Access Violation na aplicação


Ver Solução Respondido por Rafael Dias,
  • Este tópico foi criado há 1771 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde, implementei um  método na minha aplicação que é executado dentro de um Timer, tudo feito em C#, porém quando instalo a aplicação no cliente o sistema executa por algum tempo e depois fecha sozinho, o log abaixo é o que esta sendo gerado nos Eventos do Windows. Alguém já passou por isso, alguma dica?

 

 

Aplicativo: TractioPDVPrinter.exe
Versão do Framework: v4.0.30319
Descrição: O processo foi terminado devido a uma exceção sem tratamento.
Informações da Exceção: System.AccessViolationException
   em ACBrLibPosPrinter.ACBrPosPrinter+<>c__DisplayClass2_0.<.ctor>b__0()
   em ACBrLib.Core.ACBrLibHandle.ExecuteMethod[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<Int32>)

Informações da Exceção: System.ApplicationException
   em ACBrLib.Core.ACBrLibHandle.ExecuteMethod[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<Int32>)
   em ACBrLibPosPrinter.ACBrPosPrinter..ctor(System.String, System.String)
   em app_classLibrary.Servicos.ImprimirSenhaDrive(Int32)
   em app_printer_win.frmPrinter.TmrImpressao_Tick(System.Object, System.EventArgs)
   em System.Windows.Forms.Timer.OnTick(System.EventArgs)
   em System.Windows.Forms.Timer+TimerNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
   em System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
   em System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
   em System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
   em System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
   em System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
   em System.Windows.Forms.Application.Run(System.Windows.Forms.Form)
   em app_printer_win.Program.Main()

  • Solution
Postado

Este erro pelo visto é que você fica toda hora instanciando a classe e deixa o GC para fazer o serviço de remoção da memoria igual uma classe normal.
Mas como ela usa coisas nativas o GC vai deixando lixo na memoria, o correto é ter apenas 1 instancia da classe na sua aplicação e usar ela.

  • Curtir 2

 

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.