我在Visual Studio 2017 Enterprise中运行了一个控制台应用程序,以在控制台窗口中输出从1到100的数字列表。
这是我运行的代码:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i);
}
}
}
}
如果我在调试模式下运行应用程序,则控制台输出会迅速消失。我可以通过按Ctrl + F5键运行应用程序来“停止”控制台窗口(无需调试即可启动应用程序)。我也可以通过添加Console.ReadLine()
或使用Thread.Stop(3000);停止应用程序来停止控制台输出。
尽管如此,我想知道为什么Visual Studio在调试模式下运行应用程序时会如此操作。没有调试就可以开始的事情,以及这两种方法之间的区别。这与在Visual Studio上运行的进程有关吗?
有时(如果我误解了这些,请纠正我),Visual Studio锁定控制台应用程序(.exe)并显示以下输出:
错误12无法将文件“ obj \ x86 \ Debug \ ConsoleApplication.exe”复制到“ bin \ Debug \ ConsoleApplication.exe”。该进程无法访问文件“ bin \ Debug \ ConsoleApplication.exe”,因为它正在被另一个进程使用。 ConsoleApplication
错误11无法将“ obj \ x86 \ Debug \ ConsoleApplication.exe”复制到“ bin \ Debug \ ConsoleApplication1.exe”。重试计数超过10。失败。 ConsoleApplication1
我认为.exe文件正在任务管理器上运行,因此出于安全原因,Visual Studio锁定了该过程。我可以在任务管理器上终止该进程,然后再次运行控制台应用程序。有人可以解释一下这个Visual Studio沙箱如何在后台运行。谢谢!。