zoukankan      html  css  js  c++  java
  • 异步

    在异步回调中,回调线程不同于调用线程。使用Windows窗体或wpf时,这是一个问题,因为Windows窗体和wpf控件绑定到一个线程上。对于每个控件,都只能从创建该

    控件的线程中调用方法。也就是说,如果有一个后台线程,就不能直接在这个线程中访问UI控件。

    在Windows窗体控件中,唯一可以从非创建线程中调用的方法是Invoke(),BeginInvoke(),EndInvoke()和属性InvokeRequird。BeginInvoke和EndInvoke是Invoke的异步版本

               //Parallel.For
               int count =AttendanceExpandList.Count / 3;
                Parallel.For(0, 4, i =>
                {
                    IList<AttendanceExpand> list = AttendanceExpandList.Skip(i * count).Take(count).ToList();
                    list = AttenadaceCalculate(list);
                });
    
    
    //Parallel.ForEach
                Parallel.ForEach(AttendanceExpandList, item =>
                {
                    AttenadaceCalculate(item);
                });
    //第三种方法
    IsBusy = true;
                Stopwatch sw = new Stopwatch();
                sw.Start();
    
                int groupCount = AttendanceExpandList.Count / GROUPSIZE + 1;
                Task[] tasks = new Task[groupCount];
                for (int i = 0; i < groupCount; i++)
                {
                    tasks[i] = Task.Factory.StartNew(o =>
                    {
                        int index = (int)o;
                        int from = index * GROUPSIZE;
                        var list = AttendanceExpandList.Skip(from).Take(GROUPSIZE).ToList();
                        foreach (var a in list)
                        {
                            AttenadaceCalculate(a);
                        }
    
                    }, i);
                }
                
            Task.Factory.ContinueWhenAll(tasks, t =>
                {
                    sw.Stop();
                    Debug.WriteLine("calc time used: " + sw.ElapsedMilliseconds / 1000.0);
                    IsBusy = false;
                });

     详细内容可看http://www.cnblogs.com/x-xk/archive/2012/12/11/2804563.html

  • 相关阅读:
    名词解释
    cwoa2011项目部署到tomcat服务器(环境搭建及项目的运行)
    上网过程与原理
    C-编译器的实现
    css
    HMTL
    FIRST DAY
    关于面试的吐槽
    我的老大去创业啦
    .Net Core下使用 RSA
  • 原文地址:https://www.cnblogs.com/naliang/p/3504269.html
Copyright © 2011-2022 走看看