Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- public class Test
- {
- public static void Main()
- {
- Message m1 = new Message { reciver = "one", fun = () => { Console.WriteLine("Say this"); } };
- Messager.Send(m1);
- var ms = Messager.Get("one");
- foreach (var m in ms)
- {
- m.fun();
- }
- }
- }
- public class Message
- {
- public String reciver;
- public Action fun;
- }
- public static class Messager
- {
- private static object locker = new Object();
- private static List<Message> Queue = new List<Message>();
- public static List<Message> Get(String name)
- {
- List<Message> retval = new List<Message>();
- lock (locker)
- {
- foreach (var m in Queue)
- {
- if (m.reciver == name)
- {
- retval.Add(m);
- }
- }
- Queue = Queue.Except(retval).ToList();
- }
- return retval;
- }
- public static void Send(Message m)
- {
- lock (locker)
- {
- Queue.Add(m);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement