我对线程有点陌生(对 C# 不是新手,只是没有做太多线程)。有人可以向我解释为什么这不起作用吗?
我有一个线程调用我将调用“循环”的方法。Loop 包含一个 while 循环,它将持续运行,并且在 while 的每个循环中,我希望它检查 A 键是否已关闭(使用 XNA 框架中的 Microsoft 键盘类)。但由于某种原因,它从来没有记录任何被按下的东西。
static Thread thread = new Thread(Loop);
static bool abort = false;
public static void Begin()
{
thread.Start();
}
private static void Loop()
{
while (!abort)
{
if (Keyboard.GetState().IsKeyDown(Keys.A))
Console.WriteLine("A pressed.");
}
}
可能有人知道为什么永远不会调用 Console.WriteLine() 吗?
编辑:
我想我应该稍微解释一下。我实际上想要做的是在 C# 中创建类似于 ActionScript 的事件。因此,如果在包含此线程的单独类中满足该条件,我想传递一个“条件”和一个“动作”来调用。这将允许我向对象添加“事件侦听器”,它会自动不断地检查是否触发了其中一个事件,而不是让我在代码中编写 If 语句来检查事件。
在尝试这样做时,我测试的第一件事是关于这个 XNA 键盘的东西,因为这是我最初想要构建这个系统的原因之一,但它没有工作。因此,我创建了我在上面发布的独立代码,以查看我在之前的代码中是否出错并且它仍然无法正常工作。