Exemplo n.º 1
0
        public static Task <string> GetSystemToken()
        {
            var token = Environment.GetEnvironmentVariable("SYSTEMTOKEN");

            if (!string.IsNullOrEmpty(token))
            {
                return(Extensions.TaskExtensions.FromResult(token));
            }

            var tcs = new TaskCompletionSource <string>();

            Task.Factory.StartNew(() =>
            {
                try
                {
                    token = GetToken();
                    if (!string.IsNullOrEmpty(token))
                    {
                        tcs.SetResult(token);
                        return;
                    }

                    var task = ProcessEx.Exec(@"dmidecode.exe", "-s system-uuid", 1000);
                    Task.WaitAll(task);
                    var result = task.Result.Trim();
                    if (string.IsNullOrEmpty(result))
                    {
                        result = Guid.NewGuid().ToString().ToUpper();
                    }

                    if (!string.IsNullOrEmpty(result))
                    {
                        SaveToken(result);
                    }

                    tcs.SetResult(result);
                }
                catch (Exception e)
                {
                    tcs.SetException(e);
                }
            });

            return(tcs.Task);
        }
Exemplo n.º 2
0
        private static void SpeedTest()
        {
            Console.WriteLine("\r\nRunning 3 processes, 3 threads in each process, each thread writing 100,000 messages to LoggerDemo.log\r\n");

            timerStart = Environment.TickCount;
            var sb = new StringBuilder();
            var p1 = ProcessEx.Exec(Process.GetCurrentProcess().MainModule.FileName, "SPEEDTEST", null, sb);
            var p2 = ProcessEx.Exec(Process.GetCurrentProcess().MainModule.FileName, "SPEEDTEST", null, sb);
            var p3 = ProcessEx.Exec(Process.GetCurrentProcess().MainModule.FileName, "SPEEDTEST", null, sb);

            p1.WaitForExit();
            p2.WaitForExit();
            p3.WaitForExit();
            p1.Dispose();
            p2.Dispose();
            p3.Dispose();

            Console.WriteLine(sb.ToString());
            Console.WriteLine("Grand Total Duration={0:0.000} seconds", (Environment.TickCount - timerStart) / 1000.0);
        }
Exemplo n.º 3
0
        public async Task ProcessExExec()
        {
            var result = await ProcessEx.Exec(@"dmidecode.exe", "-s system-uuid");

            Assert.AreNotEqual(result.Trim(), string.Empty);
        }