コード例 #1
0
ファイル: Signal.cs プロジェクト: furesoft/Furesoft.Signals
        public static SharedObject <T> CreateSharedObject <T>(int id, bool sender = false)
        {
            if (sender)
            {
                return(SharedObject <T> .CreateSender(id));
            }

            return(SharedObject <T> .CreateReciever(id));
        }
コード例 #2
0
        internal static SharedObject <T> CreateSender(int id)
        {
            var obj = new SharedObject <T>();

            obj.ID = id;

            obj.communicator = new MemoryMappedFileCommunicator($"{id.ToString()}.shared", 4096);
            obj.communicator.ReadPosition  = 2000;
            obj.communicator.WritePosition = 0;
            obj.communicator.DataReceived += (s, e) =>
            {
                var o = Signal.Serializer.Deserialize <T>(e.Data);

                obj._callbacks.ForEach(_ =>
                {
                    _(o);
                });
            };

            obj.communicator.StartReader();

            return(obj);
        }