Aplicativo de console não sendo fechado
Estou desenvolvendo umconsole
aplicativo que deveria ser executado sobWinCE 6.0
eWinCE 7.0
. estou a usarC#
, Compact Framework 2.0
por diferentes motivos de compatibilidade.
Meu aplicativo é iniciado por um tempo de execução externo chamadoTwinCAT
(de Beckhoff). Dentro deste aplicativo, meu colega de equipe usou um bloco de função chamadont_startProcess
(documentaçãoaqui) encarregado de iniciar meu aplicativo sob demanda.
Meu problema - dois comportamentos diferentes, dependendo do sistema operacional:
Quando iniciado manualmente (sem o TwinCAT) de umcmd
linha :
Meu aplicativo se comporta corretamente nos dois sistemas. Isso significa que, os aplicativos iniciam, exibem "Hello World" e retornam aocmd
linha.
Quando iniciado a partir do TwinCAT:
a) EmWinCE 6.0
, Posso ver uma linha de cmd se abrindo, exibindo "Hello World" e se fechando logo depois. Comportamento perfeito para mim.
b) AtivadoWinCE 7.0
, Vejo uma linha de cmd sendo exibida, exibindo "Hello World", mas ela permanece aberta para sempre.Esse é meu problema!
Fragmento de código :
using System;
using System.Collections.Generic;
using System.Text;
namespace MyBasicExample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
Informações de compilação
No Visual Studio 2008, nas propriedades da compilação do projeto:
Alvo de forma de placa: qualquer CPUNota adicional:
Observe que o computador que está executando o WinCE 6.0 está usando um processador i486, enquanto o computador que está executando o WinCE 7.0 está usando um processo Freescale ArmCortex.
WinCE 6.0:
WinCE 7.0:
O que eu tentei:
1) Usandoreturn 0;
no final da aplicação.
Não altera nada no WinCE 7.0.
2) UsandoEnvironment.Exit(0);
Não está disponível no Compact Framework 2.0.
3) Usando a propriedade:IsBackground
Snippet:
// ... Same snippet as above except for the next line...
Thread.CurrentThread.IsBackground = true;
Console.WriteLine("Hello World");
// ...
4) No TwinCAT, chamando um arquivo em lotes (que chama meu exe) em vez de meu exe.
Não funciona com o TwinCAT. Eu recebo um erro do tipo "Erro geral do Sub-Windows".
5) Testado com o Compact Framework 3.5.
Mesmo comportamento.
6) Testado com outro computador CX (modelo 2020) usando o Windows CE 7.0 e outra arquitetura de processador (Intel Pentium III Xeon Modelo A).
Mesmo comportamento.