我有一个程序在一个循环中运行,并且希望允许实时人机交互而不会中断或暂停程序。
我希望能够让它使用输入作为已经运行的程序的命令。
基本上,如果我没有正确解释它:
-主程序在前台运行。
- 寻找输入的二次无限循环在后台运行
- 输入并按下返回键 (ReadLine) 时,保存字符串并发送到另一个函数(例如 Interpreter())
- 我已经设置好读取返回的输入(一个简单的循环),我只是无法理解如何随时允许用户输入。
编辑:我知道堆栈溢出通常是为了帮助解决代码中的错误,但我知道它应该很简单,我只是不明白从哪里开始。
编辑2:
using System;
using System.Threading;
using SteamKit2;
using SteamTrade;
using System.Collections.Generic;
using System.Text;
namespace SteamBot
{
public class Program
{
public static void Main(string[] EventArgs)
{
LicenseGlobal.Seal.Initialize("MY LICENSE KEY *please ignore this*");
if (System.IO.File.Exists("settings.json"))
{
Configuration config = Configuration.LoadConfiguration("settings.json");
Log mainLog = new Log(config.MainLog, null);
foreach (Configuration.BotInfo info in config.Bots)
{
mainLog.Info("Launching Bot " + info.DisplayName + "...");
new Thread(() =>
{
int crashes = 0;
while (crashes < 1000)
{
try
{
new Bot(info, config.ApiKey, (Bot bot, SteamID sid) =>
{
return (SteamBot.UserHandler)System.Activator.CreateInstance(Type.GetType(bot.BotControlClass), new object[] {
bot,
sid
});
}, false);
}
catch (Exception e)
{
mainLog.Error("Error With Bot: " + e);
crashes++;
}
}
}).Start();
Thread.Sleep(5000);
}
}
else
{
Console.WriteLine("Configuration File Does not exist. Please rename 'settings-template.json' to 'settings.json' and modify the settings to match your environment");
}
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}