示例#1
0
        public void Go(string aFilename, IActor actor)
        {
            var mapReduce = new MapReduceActor <string, string, string, string, int>
                            (
                // parse
                (a, d) =>
            {
                for (int i = 0; i < 10; i++)
                {
                    a.SendMessage(d, $"{i} {i}");
                }
            },
                // map
                (a, k, v) =>
            {
                string[] stab = v.Split(' ');
                foreach (var item in stab)
                {
                    a.SendMessage(item, 1);
                }
            },
                // reduce
                (k, v) =>
            {
                int sum = v.Count();
                return(sum);
            },
                // output
                actor);

            mapReduce.SendMessage(aFilename);
        }
示例#2
0
        public void Go(string aFilename, TextBox textBox)
        {
            var sb        = new TextBoxActor(textBox);
            var mapReduce = new MapReduceActor <string, string, string, string, int>
                            (
                // parse
                (a, d) =>
            {
                using (StreamReader sr = new StreamReader(d))
                {
                    while (!sr.EndOfStream)
                    {
                        string s = sr.ReadLine();
                        a.SendMessage(d, s);
                    }
                }
                a.SendMessage(d, a);
            },
                // map
                (a, k, v) =>
            {
                string[] stab = v.Split(' ');
                foreach (var item in stab)
                {
                    a.SendMessage(item, 1);
                }
            },
                // reduce
                (k, v) =>
            {
                int sum = v.Count();
                return(sum);
            },
                // output
                sb);

            mapReduce.SendMessage(aFilename);
        }