[+] TEngineServer

[+] TEngineServer
This commit is contained in:
ALEXTANG
2023-07-13 17:17:26 +08:00
parent a69f53592e
commit 0c8f3a5f92
790 changed files with 52737 additions and 2533 deletions

View File

@@ -0,0 +1,37 @@
using System.Threading.Tasks;
#pragma warning disable CS8601
#pragma warning disable CS8618
namespace TEngine.Core
{
public abstract class Singleton<T> : ISingleton where T : ISingleton, new()
{
public bool IsDisposed { get; set; }
public static T Instance { get; private set; }
private void RegisterSingleton(ISingleton singleton)
{
Instance = (T) singleton;
AssemblyManager.OnLoadAssemblyEvent += OnLoad;
AssemblyManager.OnUnLoadAssemblyEvent += OnUnLoad;
}
public virtual Task Initialize()
{
return Task.CompletedTask;
}
protected virtual void OnLoad(int assemblyName) { }
protected virtual void OnUnLoad(int assemblyName) { }
public virtual void Dispose()
{
IsDisposed = true;
Instance = default;
AssemblyManager.OnLoadAssemblyEvent -= OnLoad;
AssemblyManager.OnUnLoadAssemblyEvent -= OnUnLoad;
}
}
}