Пример #1
0
        public void MultipleThreadsWrittingToFile()
        {
            if (File.Exists(".\\test.log"))
            {
                File.Delete(".\\test.log");
            }

            var repo = new LogFilesRepository();

            Task[] tasks = new Task[10];
            for (int t = 0; t < 10; t++)
            {
                tasks[t] = Task.Run(() =>
                {
                    for (int n = 0; n < 1000; n++)
                    {
                        repo.WriteLine(".\\test.log", $"{Thread.CurrentThread.ManagedThreadId} - {n}", Encoding.UTF8);
                    }
                });
            }

            Task.WaitAll(tasks);
            repo.Flush();
            Assert.Equal(10000, File.ReadAllLines(".\\test.log").Length);
        }
Пример #2
0
        public void WriteToFile()
        {
            if (File.Exists(".\\test2.log"))
            {
                File.Delete(".\\test2.log");
            }

            var repo = new LogFilesRepository();

            for (int n = 0; n < 10000; n++)
            {
                repo.WriteLine(".\\test2.log", $"Log entry number {n}", Encoding.UTF8);
            }

            repo.Flush();

            Assert.Equal(10000, File.ReadAllLines(".\\test2.log").Length);
        }