zoukankan      html  css  js  c++  java
  • Task

    http://www.cnblogs.com/czllfy/archive/2011/04/15/2016733.html

            //没有返回值
                //定义 Task StartNew(Action action);
           //Task.Factory.StartNew 相当于Task.Run
    var t1 = Task.Factory.StartNew(() => Console.WriteLine("Task Created!")); Console.WriteLine(t1.Status); //有返回值 //定义 Task<TResult> StartNew<TResult>(Func<TResult> function); var task = Task.Factory.StartNew<string>(() => "Task Created!"); Console.WriteLine(task.Result); Console.WriteLine(t1.Status); Console.WriteLine(t1.Status); var task = new Task<string>(() => "Task Created!"); Console.WriteLine(task.Status); task.Start();//异步执行 Console.WriteLine(task.Status); Console.WriteLine(task.Result); Console.WriteLine(task.Status); var task = new Task<string>(() => "Task Created!"); task.RunSynchronously();//同步执行 Console.WriteLine(task.Result); var task = Task.Factory.StartNew(state => "hello " + state, "Mike"); Console.WriteLine(task.AsyncState); Console.WriteLine(task.Result); var tasks = new Task[3]; for (int i = 0; i < tasks.Length; i++) { int taskIndex = i; tasks[i] = Task.Factory.StartNew(() => { int seed = Guid.NewGuid().GetHashCode(); int waitTime = new Random(seed).Next(10, 100); Thread.Sleep(waitTime); Console.WriteLine("Task{0} Finished", taskIndex); }); } Task.WaitAny(tasks);//等待某一个任务完成 Console.WriteLine("已有任务完成");
         static void GetUrlLength(string result)
            {
                Console.WriteLine("现在时间为:"+DateTime.Now.Ticks + ",长度为:" + result.Length);
            }
    
            static void AccessUrlForNet5Async()
            {
                var client = new WebClient();
                //原型为 Task<string> DownloadStringTaskAsync(string address);
                var w1 = client.DownloadStringTaskAsync("http://msdn.microsoft.com/zh-tw").GetAwaiter();
                w1.OnCompleted(() =>
                {
                    GetUrlLength(w1.GetResult());
                });
    
                //GetUrlLength(await client.DownloadStringTaskAsync("http://msdn.microsoft.com/"));
    
            }
                var client = new WebClient();
                var t1 = client.DownloadStringTaskAsync("http://msdn.microsoft.com/zh-tw");
                t1.ContinueWith(t =>
                {
                    GetUrlLength(t1.Result);
                });
    Task<int> task = Task.Run(() =>Enumerable.Range(1,500000).Count(n=>(n%3)==0));
    Console.WriteLine("500000以内 能整除3的个数有:" + task.Result);//task未完成时,查询Result会封锁当前线程
    public static void Main()
       {
            Task<Double>[] taskArray = { Task<Double>.Factory.StartNew(() => DoComputation(1.0)),
                                         Task<Double>.Factory.StartNew(() => DoComputation(100.0)), 
                                         Task<Double>.Factory.StartNew(() => DoComputation(1000.0)) };
    
            var results = new Double[taskArray.Length];
            Double sum = 0;
            
            for (int i = 0; i < taskArray.Length; i++) {
                results[i] = taskArray[i].Result;
                Console.Write("{0:N1} {1}", results[i], 
                                  i == taskArray.Length - 1 ? "= " : "+ ");
                sum += results[i];
            }
            Console.WriteLine("{0:N1}", sum);
       }
    
       private static Double DoComputation(Double start)
       {
          Double sum = 0;
          for (var value = start; value <= start + 10; value += .1)
             sum += value;
    
          return sum; 
       }
  • 相关阅读:
    深入浅出Mybatis系列(一)---Mybatis入门
    深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)
    深入浅出Mybatis系列(九)---强大的动态SQL
    ZK请求处理
    ZK配置文件
    ZK数据同步
    集群间通信的消息类型
    ZK客户端
    Zookeeper崩溃恢复过程(Leader选举)
    Windows编程
  • 原文地址:https://www.cnblogs.com/rockywood/p/6413349.html
Copyright © 2011-2022 走看看