You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.1 KiB
69 lines
2.1 KiB
3 years ago
|
using System;
|
||
|
using System.Diagnostics;
|
||
|
using System.IO;
|
||
|
using System.Threading;
|
||
|
using CommandLine;
|
||
|
using NLog;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
internal static class Program
|
||
|
{
|
||
|
private static void Main(string[] args)
|
||
|
{
|
||
|
AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
|
||
|
{
|
||
|
Log.Error(e.ExceptionObject.ToString());
|
||
|
};
|
||
|
|
||
|
ETTask.ExceptionHandler += Log.Error;
|
||
|
|
||
|
// 异步方法全部会回掉到主线程
|
||
|
SynchronizationContext.SetSynchronizationContext(ThreadSynchronizationContext.Instance);
|
||
|
|
||
|
try
|
||
|
{
|
||
|
Game.EventSystem.Add(typeof(Game).Assembly);
|
||
|
Game.EventSystem.Add(DllHelper.GetHotfixAssembly());
|
||
|
|
||
|
ProtobufHelper.Init();
|
||
|
MongoRegister.Init();
|
||
|
|
||
|
// 命令行参数
|
||
|
Options options = null;
|
||
|
Parser.Default.ParseArguments<Options>(args)
|
||
|
.WithNotParsed(error => throw new Exception($"命令行格式错误!"))
|
||
|
.WithParsed(o => { options = o; });
|
||
|
|
||
|
Options.Instance = options;
|
||
|
|
||
|
Log.ILog = new NLogger(Game.Options.AppType.ToString());
|
||
|
|
||
|
LogManager.Configuration.Variables["appIdFormat"] = $"{Game.Options.Process:000000}";
|
||
|
|
||
|
Log.Info($"server start........................ {Game.Scene.Id}");
|
||
|
|
||
|
Game.EventSystem.Publish(new EventType.AppStart());
|
||
|
|
||
|
while (true)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
Thread.Sleep(1);
|
||
|
Game.Update();
|
||
|
Game.LateUpdate();
|
||
|
Game.FrameFinish();
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|