private void DoCollectData(double data) { // actSendByName<string>.SendByName(string.Format("receive {0}",data), "Console"); shardList.Add(data.ToString(CultureInfo.InvariantCulture)); var ct = shardList.Count(); Console.WriteLine("receive " + ct); if (ct >= 1000 - 1) { SendByName.Send("Done", "Console"); } }
private void Behavior(Chunk msg) { fChunkList.Add(msg); var lastMsg = fChunkList.Where(t => t.last).FirstOrDefault(); if ((lastMsg != null) && (fChunkList.Count - 1 == lastMsg.chunkPart)) { // send complete to sender msg.sender.SendMessage("Download complete"); // try to do something with this assembly MemoryStream ms = new MemoryStream(); Assembly asm2 = null; try { foreach (var item in fChunkList.OrderBy(t => t.chunkPart)) { ms.Write(item.data, 0, item.data.Length); } asm2 = Assembly.Load(ms.ToArray()); } finally { ms.Dispose(); } Debug.Assert(Assembly.GetExecutingAssembly() != asm2); Console.WriteLine(asm2.GetName()); Console.WriteLine("Location" + asm2.Location); IActor asmobj = asm2.CreateInstance("Actor.Plugin.actPlugin") as IActor; Debug.Assert(asmobj != null); // register in directory DirectoryActor.GetDirectory().Register(asmobj, "plugin"); asmobj.SendMessage("Hello"); SendByName <string> .Send("by name", "plugin"); } }