예제 #1
0
            public void TestFlush()
            {
                long fileSize = Random.Next(3 * 1024 * 1024);
                int cut = Random.Next((int)fileSize);
                var file = new FileInfo(Path.GetTempFileName());

                using (FileStream raf = new FileStream(file.FullName, FileMode.Open, FileAccess.ReadWrite))
                using (var fc = MemoryMappedFile.CreateFromFile(raf, null, fileSize, MemoryMappedFileAccess.ReadWrite,
                #if FEATURE_MEMORYMAPPEDFILESECURITY
                    null,
                #endif
                    HandleInheritability.None, false))
                {
                    MemoryMappedViewByteBuffer mbb = fc.CreateViewByteBuffer(cut, fileSize - cut, MemoryMappedFileAccess.ReadWrite);
                    mbb.Flush();
                }

                // improve chance that mapped buffer will be unmapped
                GC.Collect();
                DeleteFile(file);
            }
            public void TestZeroMap()
            {
                long fileSize = Random.Next(1024 * 1024);
                int  cut      = Random.Next((int)fileSize);
                var  file     = new FileInfo(Path.GetTempFileName());

                using (FileStream raf = new FileStream(file.FullName, FileMode.Open, FileAccess.ReadWrite))
                    using (var fc = MemoryMappedFile.CreateFromFile(raf, null, fileSize, MemoryMappedFileAccess.ReadWrite,
#if !NETSTANDARD
                                                                    null,
#endif
                                                                    HandleInheritability.None, false))
                    {
                        MemoryMappedViewByteBuffer mbb = fc.CreateViewByteBuffer(cut, 0, MemoryMappedFileAccess.ReadWrite);
                        mbb.Flush();
                    }

                // improve chance that mapped buffer will be unmapped
                GC.Collect();
                Thread.Sleep(500);

                DeleteFile(file);
            }
예제 #3
0
            public void TestZeroMap() //"Awaits fix: https://github.com/xamarin/xamarin-android/issues/5423"
            {
                long fileSize = Random.Next(1024 * 1024);
                int  cut      = Random.Next((int)fileSize);
                var  file     = new FileInfo(Path.GetTempFileName());

                using (FileStream raf = new FileStream(file.FullName, FileMode.Open, FileAccess.ReadWrite))
                    using (var fc = MemoryMappedFile.CreateFromFile(raf, null, fileSize, MemoryMappedFileAccess.ReadWrite,
#if FEATURE_MEMORYMAPPEDFILESECURITY
                                                                    null,
#endif
                                                                    HandleInheritability.None, false))
                    {
                        MemoryMappedViewByteBuffer mbb = fc.CreateViewByteBuffer(cut, 0, MemoryMappedFileAccess.ReadWrite);
                        mbb.Flush();
                    }

                // improve chance that mapped buffer will be unmapped
                GC.Collect();
                Thread.Sleep(500);

                DeleteFile(file);
            }