Ejemplo n.º 1
0
        private static void ReadTextInProcess(object param)
        {
            var query = param as FileQuery;
            var slot  = Guid.NewGuid().ToString();

            MailSlotService.Create(slot);

            var file       = query.Path;
            var readerProc = new ProcessStartInfo(readerPath, $"{file} {slot}")
            {
                UseShellExecute = false
            };
            var proc = Process.Start(readerProc);

            bool exit = false;

            while (true)
            {
                exit = proc.HasExited;
                var line = MailSlotService.Read(slot);
                if (!string.IsNullOrEmpty(line))
                {
                    query.Output.Add(line);
                }
                else if (exit)
                {
                    break;
                }
            }

            MailSlotService.Close(slot);
        }
Ejemplo n.º 2
0
        static int Main(string[] args)
        {
            if (args.Length != 2)
            {
                return(-1);
            }

            var file = args[0];
            var slot = args[1];

            using (var reader = new StreamReader(file))
            {
                try
                {
                    while (!reader.EndOfStream)
                    {
                        if (!MailSlotService.Write(slot, reader.ReadLine()))
                        {
                            return(-1);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine(ex.Message);
                    Console.Error.WriteLine(ex.StackTrace);
                    return(-1);
                }
            }

            return(0);
        }