45 lines
1.0 KiB
C#
45 lines
1.0 KiB
C#
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CommonConsole
|
|
{
|
|
public class Program
|
|
{
|
|
public static void Main()
|
|
{
|
|
var cancelationTokenSource = new CancellationTokenSource();
|
|
var cancelationToken = cancelationTokenSource.Token;
|
|
var manualResetEventSlim = new ManualResetEventSlim();
|
|
|
|
void LongRunningTask()
|
|
{
|
|
Console.WriteLine("started");
|
|
|
|
manualResetEventSlim.Wait(3000, cancelationToken);
|
|
|
|
Console.WriteLine("stoped");
|
|
}
|
|
|
|
Task.Factory.StartNew(LongRunningTask);
|
|
|
|
while (true)
|
|
{
|
|
var consoleKey = Console.ReadKey().Key;
|
|
|
|
if (consoleKey == ConsoleKey.X)
|
|
{
|
|
cancelationTokenSource.Cancel();
|
|
}
|
|
else if (consoleKey == ConsoleKey.C)
|
|
{
|
|
break;
|
|
}
|
|
|
|
Console.WriteLine();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|