Exemplo n.º 1
0
        static void Main(string[] args)
        {
            DateTime        strart = DateTime.Now;
            MemoryMapStream stream = new MemoryMapStream();

            Task.Factory.StartNew(() => {
                // stream.ReadAllSegmentFileAsync(@"F:\allfiles\M.avi");
                stream.FileRead(@"F:\allfiles\M.avi");
            });
            int    num    = 0;
            Thread thread = new Thread(() =>
            {
                stream.FilePath = @"F:\allfiles\copy\M.avi";
                while (true)
                {
                    var buf = stream.GetMemoryMapBuffer();
                    if (buf != null)
                    {
                        stream.FileWrite(buf);
                        // stream.MemoryMapAppendFile(@"F:\allfiles\copy\M.avi", buf);
                        buf.OffSet = 0;
                        buf.Size   = 0;
                        stream.FreeBuffer(buf);
                        num++;
                    }
                    else
                    {
                        if (stream.IsAllComplete)
                        {
                            Console.WriteLine(num);
                            stream.FileFlush();
                            break;
                        }
                        Thread.Sleep(500);
                    }
                }
                Console.WriteLine((DateTime.Now - strart).TotalMilliseconds);
            });

            thread.IsBackground = true;
            thread.Start();

            Console.Read();
        }