您好,感谢您的帮助。 我在这里遇到一个奇怪的问题,我想听听你对此的建议,评论或想法。我的麻烦是我无法在我的开发计算机中重现这个问题
情况 我已经构建了一个控制台应用程序(在C#中)。它很棒。现在其他人正在使用它。 在其中一个用户的计算机中,有另一个应用程序。通过它,它是一个Windows应用程序。我不知道它的代码,而且我用相当模糊的语言告诉我"它是用C#" 构建的。 该应用程序基本上是窗口中的一些初始化,关闭该窗口,然后出现一个带有按钮的登录窗口,两个文本框用于输入密码。 报告给我的(并且归因于我的控制台应用程序)的问题是,当控制台应用程序正在运行而未最小化,然后启动另一个应用程序时,出现的登录窗口没有第一个文本框。这意味着,如果我开始写没有任何事情发生,我必须明确选择该文本框写入其中。 当我的控制台应用程序最小化或未运行时,另一个应用程序从第一个文本框开始处于焦点(我可以简单地开始编写 - 无需选择文本框)
现在,我的控制台应用程序相当复杂,因此我构建了一个非常简单的控制台应用程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleFocus
{
class Program
{
private static volatile bool keepRunning = true;
static void Main(string[] args)
{
//We manage to set the way to finish this program with CTRL+C
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e)
{
e.Cancel = true; //execution continues after the delegate
//we leave the whole program entirely
keepRunning = false;
};
while(keepRunning)
{
Console.WriteLine("I am still here");
Thread.Sleep(2000);
}
Console.WriteLine("Hit enter to finish...");
Console.Read();
}
}
}
还有一个非常简单的Windows应用程序。 我在其他应用程序中尝试了两者的效果。 正如预期的那样,即使最简单的控制台应用程序也会导致失去对其他应用程序的关注。同时Windows应用程序不会导致任何问题。
所以似乎以某种方式控制ctrl-c完成的控制台应用程序干扰了这个应用程序。 (我已经构建了自己的应用程序,这根本不会发生)
知道为什么会发生这种情况吗?
提前致谢