Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# ожидание нажатия клавиши не останавливая код.

YarinMinecraft YT Ученик (159), открыт 1 месяц назад
Program.cs:
 using System; 
using CheatPasswordHack;

class Program
{
public List<string> cheatcod = new List<string>();
private void login()
{
Console.Write("Please input you name: ");
string? password = Console.ReadLine();
if (cheatcod.Contains(password))
{
Console.WriteLine($"Cheat code {password} activated!");
Console.ReadKey();
}
else if (password == "0968") {
Console.WriteLine("Okay");
Console.ReadKey();
}
else {
Console.WriteLine("Ooops! Try again");
Console.ReadKey();
}
}
static void Main(string[] args)
{
// while (Console.ReadKey().Key != ConsoleKey.F2) { Console.WriteLine("hack!"); } Пытался сделать что-что подобное но не получилось(((
var cl = new Program();
InjectCheatCodes inj = new InjectCheatCodes();
inj.Inject(cl.cheatcod);
cl.login();
}
}
InjectCheatCodes.cs:
 using System; 
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CheatPasswordHack
{

public class InjectCheatCodes
{
private static char[] lowerCaseLettersAndDigits = "abcdefghijklmnopqrstuvwxyz0123456789".ToCharArray();
public static int _maxLengthOfPassword;
public List<string> Inject(List<string> cheatcodes) {
cheatcodes.Add("6-666-999");
cheatcodes.Add("2-925-657");
cheatcodes.Add("7-474-747");
return cheatcodes;
}
}
}
Как во время выполнения программы в C# ждать пока не будет нажата определённая клавиша не останавливая выполнение кода?????
Дополнен 1 месяц назад
P.S теперь код такой:
using System.Threading;
using CheatPasswordHack;

class Program
{
public List<string> cheatcod = new List<string>();
private void login()
{
Console.Write("Please input you name: ");
string? password = Console.ReadLine();
if (cheatcod.Contains(password))
{
Console.WriteLine($"Cheat code {password} activated!");
Console.ReadKey();
}
else if (password == "0968") {
Console.WriteLine("Okay");
Console.ReadKey();
}
else {
Console.WriteLine("Ooops! Try again");
Console.ReadKey();
}
}

void Startt()
{
var cl = new Program();
InjectCheatCodes inj = new InjectCheatCodes();
inj.Inject(cl.cheatcod);
cl.login();
}

void Cheat()
{
// while (Console.ReadKey().Key != ConsoleKey.F2) { } не работает
}
static void Main(string[] args)
{
var cl = new Program();
Thread Thread1 = new Thread(cl.Startt);
Thread Thread2 = new Thread(cl.Cheat);
Thread1.Start();
Thread2.Start();
}
}

И мне нужно как-то сделать проверку на нажатую клавишу
1 ответ
Jurijus Zaksas Искусственный Интеллект (445658) 1 месяц назад
Примерно так:

        static bool ThreadStopped = false; 
static void Amba()
{
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i.ToString());
Thread.Sleep(1000);
if (ThreadStopped)
break;
}
}

static void Main(string[] args)
{
new Thread(Amba).Start();
Console.WriteLine("Press any key to exit");
Console.ReadKey();
ThreadStopped = true;
}

Адаптируй для своих нужд.
Похожие вопросы