mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-17 13:53:52 +02:00
use timer
This commit is contained in:
24
Discord.cs
24
Discord.cs
@@ -15,7 +15,7 @@ namespace VRCX
|
||||
private readonly ReaderWriterLockSlim m_Lock;
|
||||
private readonly RichPresence m_Presence;
|
||||
private DiscordRpcClient m_Client;
|
||||
private Thread m_Thread;
|
||||
private Timer m_Timer;
|
||||
private bool m_Active;
|
||||
|
||||
static Discord()
|
||||
@@ -27,40 +27,30 @@ namespace VRCX
|
||||
{
|
||||
m_Lock = new ReaderWriterLockSlim();
|
||||
m_Presence = new RichPresence();
|
||||
m_Thread = new Thread(ThreadLoop)
|
||||
{
|
||||
IsBackground = true
|
||||
};
|
||||
m_Timer = new Timer(TimerCallback, null, -1, -1);
|
||||
}
|
||||
|
||||
internal void Init()
|
||||
{
|
||||
m_Thread.Start();
|
||||
m_Timer.Change(0, 1000);
|
||||
}
|
||||
|
||||
internal void Exit()
|
||||
{
|
||||
var thread = m_Thread;
|
||||
m_Thread = null;
|
||||
thread.Interrupt();
|
||||
thread.Join();
|
||||
|
||||
m_Timer.Change(-1, -1);
|
||||
m_Client?.Dispose();
|
||||
}
|
||||
|
||||
private void ThreadLoop()
|
||||
private void TimerCallback(object state)
|
||||
{
|
||||
while (m_Thread != null)
|
||||
lock (this)
|
||||
{
|
||||
Update();
|
||||
|
||||
try
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
Update();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ThreadInterruptedException
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user