gpt4 book ai didi

c# - 保持 Windows Mobile 控制台应用程序运行

转载 作者:行者123 更新时间:2023-11-30 21:24:21 25 4
gpt4 key购买 nike

我有一个如下所示的 Windows 移动应用程序:

class Program
{
static void Main(string[] args)
{
RunHook runHook = new RunHook();

}
}

class RunHook
{
private HookKeys hook;
public RunHook()
{
hook = new HookKeys();
hook.HookEvent += EventForHook;
}

private void EventForHook(HookEventArgs e, KeyBoardInfo keyBoardInfo,
ref Boolean handled)
{
if ((keyBoardInfo.scanCode == 4) && (keyBoardInfo.vkCode == 114))
handled = true;
}
}

它会在键盘上创建一个钩子(Hook)(我知道有些人不赞成这样做)。我的问题是我需要 Main 方法永不返回。这将在我公司拥有的设备上运行,我们正在使用它来禁用手机硬件 key 。

这看起来应该很简单,但我坚持了下来。

在普通的 .NET 上,我只会调用 Console.Readline(),但这在 Windows Mobile Compact Framework 上不起作用。我也尝试过 Thread.Sleep(0),但它也不起作用。

感谢任何反馈。

最佳答案

Thread.Sleep(0) 休眠零毫秒。

您可能需要 Thread.Sleep(Timeout.Infinite)

您还可以考虑创建一个 EventWaitHandle:

class Program
{
static public ManualResetEvent StopMain;

static void Main(string[] args)
{
StopMain = new ManualResetEvent(false);
RunHook runHook = new RunHook();
StopMain.WaitOne(); // waits until signalled
}
}

然后,如果您准备好退出 Main(),您可以调用(从另一个线程):

Program.StopMain.Set();

关于c# - 保持 Windows Mobile 控制台应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com