Я разрабатываю приложение console
, которое должно работать под WinCE 6.0
и WinCE 7.0
. Я использую C#
, Compact Framework 2.0
по различным причинам совместимости.Консольное приложение не закрывается
Мое приложение запускается внешним временем выполнения под названием TwinCAT
(от Beckhoff). В этом приложении мой товарищ по команде использовал функциональный блок под названием nt_startProcess
(документация here), который отвечает за запуск моего приложения по требованию.
Моя проблема - Две разные модели поведения в зависимости от операционной системы:
При запуске вручную (без TwinCAT) от
cmd
линии:Мое приложение ведет себя должным образом в обеих системах. Это означает, что приложения запускаются, отображает «Hello World», а затем возвращается к строке
cmd
.При запуске из TwinCAT:
а) На
WinCE 6.0
, я могу видеть отверстие CMD линии, показывая "Hello World" и закрывая себя сразу же после. Отличное поведение для меня.b) On
WinCE 7.0
, я вижу открытие линии cmd с отображением «Hello World», но он остается открытым навсегда. Это моя проблема!
Фрагмент кода:
using System;
using System.Collections.Generic;
using System.Text;
namespace MyBasicExample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
информация Компиляция
В Visual Studio 2008, в свойствах компиляции проекта:
- Platefor м Цель: Любой процессор
Additionnal примечание:
Пожалуйста, обратите внимание, что компьютер, который работает под управлением WinCE 6.0 использует процессор i486 в то время как один работает WinCE 7.0 использует процесс Freescale ArmCortex.
WinCE 6,0:
WinCE 7,0:
Что я пробовал:
1) Использование return 0;
в конце приложения.
Ничего не изменит на WinCE 7.0.
2) Использование Environment.Exit(0);
не доступен в Compact Framework 2.0.
3) Используя свойство: IsBackground
Snippet:
// ... Same snippet as above except for the next line...
Thread.CurrentThread.IsBackground = true;
Console.WriteLine("Hello World");
// ...
4) От TwinCAT, вызывая пакетный файл (который вызывает мой ехе) вместо моего ехе.
Не работает с TwinCAT. Я получаю сообщение об ошибке «General Sub-Windows error».
5) Протестировано с Compact Framework 3.5.
Такое же поведение.
6) Протестировано другим компьютером CX (модель 2020) с использованием Windows CE 7.0 и другой архитектуры процессора (Intel Pentium III Xeon Model A).
Такое же поведение.
пытался Environment.Exit (0)? – Chaka
@ Chaka Я не думал об этом. Я попробовал вернуться 0; без особого успеха ... Мы пытаемся это прямо сейчас. –
@Chaka У меня не может быть метода Exit в Compact framework 2.0. –