MyTetra Share
Делитесь знаниями!
Запись двух потоков в один файл
Время создания: 28.03.2021 11:56
Раздел: Компьютер - C# - Работа с файлами
Запись: Kozlov-AE/Tetra/master/base/1616921796ve5n45wkkl/text.html на raw.githubusercontent.com

задача - создать два потока, которые вели бы запись строк в один файл и при этом чтобы при каждом запуске содержание файла очищалось.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Timers;
 
namespace ConsoleApplication2
{
 
    class MyThread
    {
        Thread tr;
        string fileName;
        string stroke;
        public int count;
        public MyThread(string fileName, string stroke, int count)
        {
            this.fileName = fileName;
            this.stroke = stroke;
            this.count = count;
            tr = new Thread(this.Writing);
            tr.Start();
            tr.Join();// ожидание завершения потока
        }
        private void Writing()
        {
            FileStream aFile = new FileStream(fileName, FileMode.OpenOrCreate);
            StreamWriter sw = new StreamWriter(aFile);
            aFile.Seek(0, SeekOrigin.End);
            for (int i = 0; i < count; i++)
            {
                DateTime dt = DateTime.Now;
                sw.WriteLine(stroke + dt.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond);
                Console.WriteLine(stroke + dt.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond);
            }
            sw.Close();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MyThread mtr1 = new MyThread(@"D:\log1.txt", "Srtoke #1 ", 10);
            MyThread mtr2 = new MyThread(@"D:\log1.txt", "Srtoke #2 ", 10);
        }
    }
}


а добавлением такой строки, обеспечивается обновление файла каждый раз.



1
2
3
4
5
6
static void Main(string[] args)
        {
            File.Delete(@"D:\log1.txt");// вот эта строка
            MyThread mtr1 = new MyThread(@"D:\log1.txt", "Srtoke #1 ", 10);
            MyThread mtr2 = new MyThread(@"D:\log1.txt", "Srtoke #2 ", 10);
        }
Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования