Ir ao conteúdo

Posts recomendados

Postado

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

 

  • 5 meses depois...
Postado

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.

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...