Пример #1
0
        static Application()
        {
            string executingAssemblyFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            string subfolder;

            if (Environment.Is64BitProcess)
            {
                subfolder = "x64";
            }
            else
            {
                subfolder = "x32";
            }

            string dllPath     = Path.Combine(executingAssemblyFolder, subfolder);
            String currentPath = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process);

            dllPath = dllPath.Replace("/", "\\");
            if (currentPath.Contains(dllPath) == false)
            {
                String newPath = currentPath + Path.PathSeparator + dllPath;
                Environment.SetEnvironmentVariable("PATH", newPath, EnvironmentVariableTarget.Process);
            }

            Thread.CurrentThread.Name = "Main Thread";
            myTaskManager             = new TaskManager();
            myEventManager            = new EventManager();

            NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();

            foreach (var x in nics[0].GetIPProperties().UnicastAddresses)
            {
                if (x.Address.AddressFamily == AddressFamily.InterNetwork)
                {
                    myUniqueId = (ulong)((int)x.Address.Address) << 32;
                    break;
                }
            }

            myProcId   = (uint)System.Diagnostics.Process.GetCurrentProcess().Id;
            myUniqueId = myUniqueId | (ulong)myProcId;
            myClock    = TimeSource.newClock();
        }