Я создаю инструмент на C # для игры, в которую играю, не зная, как лучше это сделать. В игре есть журнал, в который записываются все сообщения в игре:
«Майк присоединился к вечеринке»
«Боб присоединился к вечеринке»
«Боб присоединился к зоне»
«Майк присоединился к области»
«Успех Боба в торговле»
«Боб покинул область»
«Успех Майка в торговле»
Мне нужно иметь возможность выполнять действия, основанные на том, чтожурнал показывает в реальном времени, поэтому я реализовал функцию хвоста.
static async void Readlog()
{
using (var fs = new FileStream("F:\\gamelog.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var sr = new StreamReader(fs))
{
if (sr.BaseStream.Length > 1024)
{
sr.BaseStream.Seek(1, SeekOrigin.End);
}
while (true)
{
string line = sr.ReadLine();
if (line != null)
Console.WriteLine(line);
Я пытался использовать / изучать асинхронное / ожидание / задачи, но я думаю, что было бы лучше использовать совершенно отдельный поток дляпроверка журнала. Другой поток может обрабатывать торговую функцию и действовать в зависимости от того, какие записи были замечены.
Не уверен, как это сделать, но, думаю, я движусь в правильном направлении.