using FObjSysTest.Server;
using System;
using System.Net;
using System.Threading;
using System.Windows.Threading;

namespace Server_ConsoleApp
{
    class Program
    {
        static int t = 0;
        static void Main(string[] args)
        {
            //Console.WriteLine($"Dispatcher.CurrentDispatcher.Thread.ManagedThreadId = {Dispatcher.CurrentDispatcher.Thread.ManagedThreadId}");

            //Console.WriteLine($"Thread.CurrentThread.ManagedThreadId = {Thread.CurrentThread.ManagedThreadId}");

            var obja = new ObjA();
            var obja_proxy = new FObjSysTest.Server.OBJProxxy.ObjA_OBJProxy(0, 0x12345600, obja);


            obja_proxy.CurrObjSys.Start_Conn_Server(
                new IPEndPoint(IPAddress.Any, 12345), obja_proxy.ID);


            //FObjBase.PollModule.Current.Start();
            //FObjBase.PollModule.Current.Poll_Config(FObjBase.PollModule.POLL_CONFIG.ADD, () =>
            //{
            //    Console.WriteLine($"{t++}");

            //}, TimeSpan.FromSeconds(2));

            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Interval = 10;
            timer.AutoReset = true;
            timer.Elapsed += Timer_Elapsed;
            timer.Start();
            

            Console.WriteLine("server --------------------");
            Console.ReadLine();
        }

        static bool mylock;
        private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            //FObjBase.PollModule.Current.Dispatcher = Dispatcher.CurrentDispatcher;
            if (mylock != true)//不能让它能重入
            {
                mylock = true;
                FObjBase.PollModule.Current.OnPoll();
                mylock = false;
            }
        }
    }
}
