コード例 #1
0
        void runTask(object s, ElapsedEventArgs e)
        {
            Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
            log($"Monitoring the system: {Thread.CurrentThread.Priority}");
            SetThreadExecutionState(_ES.ES_SYSTEM_REQUIRED | _ES.ES_CONTINUOUS);

            //if (DateTime.Now.DayOfWeek != DayOfWeek.Friday) return;
            //if (DateTime.Now.Hour < 19) return;

            if (MyTask.Running)
            {
                return;
            }
            try
            {
                log($"MyTask.Run()...");
                _timer.Stop();
                MyTask.Run(log);
            }
            finally
            {
                log($"SystemStorage timer start()");
                _timer.Start();
            }
        }//
コード例 #2
0
ファイル: TaskTester.cs プロジェクト: free302/NtfsAltStream
        void OnStart()
        {
            log($"entering OnStart()...");

            // Set up a timer that triggers every minute.
            var timer = new System.Timers.Timer();

            timer.Interval = 5000;
            timer.Elapsed += new ElapsedEventHandler(work);
            timer.Start();

            log($"...exiting OnStart()");

            void work(object s, ElapsedEventArgs e)
            {
                log($"u1={MyTask.getUserName()}, u2={MyTask.getUser2()}");
                log($"Monitoring the System");

                if (!MyTask.Running)
                {
                    try
                    {
                        log($"{nameof(MyTask)}.Run()...");
                        timer.Stop();
                        MyTask.Run(log, @"..\..\..\TestDir");
                    }
                    finally
                    {
                        log($"SystemStorage tiemr restart()...");
                        timer.Interval = 20000;
                        timer.Start();
                    }
                }
            }
        }
コード例 #3
0
        static async Task Main(string[] args)
        {
            DateTime dateTime    = DateTime.Now;
            var      dateTimeStr = dateTime.ToString();

            System.Console.WriteLine(dateTimeStr);

            var myTask    = MyTask.Run(() => DateTime.Now);
            var myStrTask = MyTask.Run(() => myTask.Result.ToString());
            var print     = MyTask.Run(() => Console.WriteLine(myStrTask.Result));


            // Console.WriteLine("Hello World!");

            bool run = true;

            Console.ForegroundColor = ConsoleColor.Green;
            Random r    = new Random();
            MyTask task = new MyTask(() =>
            {
                while (run)
                {
                    Console.Write(r.Next(0, 9));
                }
            });

            task.Start();

            task.Wait(500);
            run = false;

            Console.ReadLine();
        }
コード例 #4
0
        public MyTask <(int, int)> HelloInt(int a)
        {
            Logger.Debug($"server: recv helloint {a}");

            MyTask.Run(async delegate(object o)
            {
                var(c, d) = await CallAsync.GetRpc <ICHelloService>().HelloInt(1);
                Logger.Debug($"recv client a: {c}, b: {d}");
            }, null);

            return(MyTask.FromResult((a, a)));
        }
コード例 #5
0
        static void Main(string[] args)
        {
            Logger.Trace("Hello");
            for (int i = 0; i < 1; ++i)
            {
                Task.Run(StartClient);
            }

            Console.ReadKey();
#if false
            ISerializer serializer = new Serializer();
            s_callAsync = new CallAsync("127.0.0.1", 1234, Cool.Interface.NetWork.NetType.TCP);

            ClientTest.CHelloService cHelloService = new ClientTest.CHelloService();
            cHelloService.Serializer = serializer;
            cHelloService.CallAsync  = s_callAsync;
            cHelloService.ChunkType  = (int)ChunkType.BASE;

            s_CHelloServiceHandlers = new ICHelloService_HandlerMap(cHelloService);

            s_sHelloService           = new CSRPC.SHelloService(serializer, s_callAsync);
            s_sHelloService.ChunkType = (int)ChunkType.BASE;

            while (true)
            {
                if (Console.KeyAvailable)
                {
                    if (Console.ReadKey().Key == ConsoleKey.Spacebar)
                    {
                        s_sHelloService.Hello();
                        MyTask.Run(async delegate(object state)
                        {
                            var(a, b) = await s_sHelloService.HelloInt(1);
                            CoolLog.WriteLine($"a:{a}, b:{b}");

                            //return null;
                        }, null);
                    }
                    else if (Console.ReadKey().Key == ConsoleKey.A)
                    {
                    }
                }


                if (s_callAsync != null)
                {
                    s_callAsync.Update();
                }
            }
#endif
        }
コード例 #6
0
        private static void MakeCharacter(int employeeId)
        {
            Console.WriteLine($"{employeeId}さんの課題");
            Console.WriteLine("-------------------");

            switch (employeeId)
            {
            case 92:
                break;

            case 667:
                ITask task = new MyTask();
                task.Run();
                break;

            default:
                throw new ArgumentNullException($"{employeeId}さんの課題は存在しません。");
            }
        }
コード例 #7
0
        static async Task StartClient()
        {
            ISerializer serializer = new Serializer();
            ICallAsync  callAsync  = new CallAsync("127.0.0.1", 1234, Cool.Interface.NetWork.NetType.TCP);

            callAsync.AddRpcHandlers <ICHelloService>(new CHelloService());

            while (true)
            {
                await Task.Delay(10);

                MyTask.Run(RunRequest, callAsync);


                if (callAsync != null)
                {
                    callAsync.Update();
                }
            }
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: yangguosdxl/TodoApp
        static void Main(string[] args)
        {
            Logger.Info("Hello World!");

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            TaskScheduler.UnobservedTaskException      += TaskScheduler_UnobservedTaskException;

            CustomTaskScheduler      scheduler = new CustomTaskScheduler();
            MySynchronizationContext context   = new MySynchronizationContext();

            //SynchronizationContext.SetSynchronizationContext(context);

            //Task.Factory.StartNew(Hello, "A:", new CancellationToken(), TaskCreationOptions.None, scheduler);
            //Task.Factory.StartNew(Hello, "B:", new CancellationToken(), TaskCreationOptions.None, scheduler);
            //Task.Factory.StartNew(Hello, "C:", new CancellationToken(), TaskCreationOptions.None, scheduler);

            Task.Factory.StartNew(Hello, "PoolA:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);
            //Task.Factory.StartNew(Hello, "PoolB:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);
            //Task.Factory.StartNew(Hello, "PoolC:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);

            //Hello("E");

            MyTask.Run(HelloMyTask, "I");
            //MyTask.Run(HelloMyTask2, "有返回值:");

            Log("Main");

            while (Console.KeyAvailable == false)
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
                scheduler.Update();
                //myTaskScheduler.Update();
                s_WaitOneFrameTasks.Update();
                //context.Update();
            }

            ref StructA a = ref alist[0];
コード例 #9
0
    public static void Main(string[] args)
    {
        MyTask task = new MyTask();

        // Most methods that call a SWI throw an OS.ErrorException if the
        // SWI returns an error.
        try
        {
            task.Init();
            task.Run();
        }
        catch (OS.ErrorException ex)
        {
            Reporter.WriteLine(ex.OSError.Message);
            Console.WriteLine("error number = {0}, error string = {1}",
                              ex.OSError.Number,
                              ex.OSError.Message);
        }
        finally
        {
            task.CloseDown();
        }
    }
コード例 #10
0
ファイル: SceneControl.cs プロジェクト: Soviby/CommFrame
 //服务端调用
 public void EnterScene(int sceneID)
 {
     MyTask.Run(_EnterScene(sceneID));
 }