Я написал консольное приложение .NET (на С#) для версии 4.5.1. Мой метод Main
выглядит так:
public static void Main(string[] args)
{
Console.CancelKeyPress += delegate
{
CancelToken.Cancel();
};
var kbTask = Task.Run(async () =>
{
while (true)
{
await ProcessCommand(Console.ReadLine());
}
}, CancelToken.Token);
kbTask.Wait(CancelToken.Token);
}
Одна из возможных команд (обрабатывается ProcessCommand
) вызывает длительный процесс, который я хотел бы отменить с помощью CTRL + C через делегат Console.CancelKeyPress
.
Но когда я делаю это, Visual Studio открывает вкладку с надписью «mscorlib.dll не загружена», а затем ничего не делает — консоль остается открытой, но не отвечает.
Я также пытался запустить приложение вне отладки, но не могу найти исполняемый файл.
while
после разрыва, когда он установлен. - person Sean   schedule 26.04.2016foreach
, и в конце каждого прохода я проверяю CancellationToken (который является глобальным). - person awj   schedule 26.04.2016