Ir ao conteúdo
  • Cadastre-se

VB.NET Erro de falta de memória ao executar códigos (script)


Posts recomendados

Preciso executar um mesmo script diversas vezes seguidas só que após 40 minutos executando dá erro de falta de memória.

Para facilitar, o exemplo não passa parâmetros nem retorna valores e o código do script resume-se apenas à declaração da subrotina.

Eu tentei os itens abaixo não adiantou.

 

1) cppPARAMETROS.GenerateInMemory = False

 

2) Após a execução do script 'GC.Collect'

 

Alguma sugestão?

 

-----------------------------------------------------------------------------------------------------

Imports System.CodeDom.Compiler
Imports System.Reflection

Public Class Form1

  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    Do
      subScript_Executar()
      My.Application.DoEvents()
       Loop

  End Sub


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

  Private Sub subScript_Executar()

    Dim cppPARAMETROS = New CompilerParameters()
    cppPARAMETROS.GenerateExecutable = False
    cppPARAMETROS.GenerateInMemory = True

    Dim cdpCOMPILADOR As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")

    'O erro ocorre nessa linha
    Dim cprCOMPILACAO As CompilerResults = cdpCOMPILADOR.CompileAssemblyFromSource(cppPARAMETROS,
      "Public Class Classe_Subrotina" & vbCrLf &
      "  Public Sub Subrotina" & vbCrLf &
      "  End Sub" & vbCrLf &
      "End Class")

    Dim objCLASSE_COMPILADA_INSTANCIA As Object = cprCOMPILACAO.CompiledAssembly.CreateInstance("Classe_Subrotina")

    objCLASSE_COMPILADA_INSTANCIA.GetType().InvokeMember("Subrotina", BindingFlags.InvokeMethod, Nothing, objCLASSE_COMPILADA_INSTANCIA, Nothing)

  End Sub

End Class

 

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Xeviousbr,

 

Obrigado pela ajuda, mas consegui uma solução em um outro fórum e ela foi compilar para x64, pois assim libera uma quantidade enorme de memória. No meu caso não é possível criar o Script uma vez e ficar execurtando, pois ele recebe parâmetros. O exemplo que coloquei não possui parâmetros para simplificar.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...