我正在开发一个console
应该在WinCE 6.0
and下运行的应用程序WinCE 7.0
。我正在使用C#
,Compact Framework 2.0
出于不同的兼容性原因。
我的应用程序由一个名为TwinCAT
(来自 Beckhoff)的外部运行时启动。在这个应用程序中,我的队友使用了一个名为nt_startProcess
(此处的文档)的功能块,它负责按需启动我的应用程序。
我的问题 - 两种不同的行为取决于操作系统:
从
cmd
生产线手动启动(不使用 TwinCAT)时:我的应用程序在两个系统上都能正常运行。这意味着,应用程序启动,显示“Hello World”,然后返回该
cmd
行。从 TwinCAT 启动时:
a) On
WinCE 6.0
,我可以看到一个 cmd 行打开,显示“Hello World”,然后立即关闭。对我来说完美的行为。b)在
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 中,在项目编译的属性中:
- 平台目标:任何 CPU
附加说明:
请注意,运行 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
片段:
// ... Same snippet as above except for the next line...
Thread.CurrentThread.IsBackground = true;
Console.WriteLine("Hello World");
// ...
4) 从 TwinCAT 调用批处理文件(调用我的 exe)而不是我的 exe。
不适用于 TwinCAT。我收到“常规子窗口错误”类型的错误。
5) 使用 Compact Framework 3.5 进行测试。
相同的行为。
6) 在另一台使用 Windows CE 7.0 和另一种处理器架构(Intel Pentium III Xeon Model A)的 CX 计算机(型号 2020)上进行测试。
相同的行为。