Логирование - C# (218826)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Срочно нужна ваша помощь. Нужно чтобы ЭТО запускалось в отдельном потоке. Чтобы остальная часть программы, вызывающая этот класс, не ждала его выполнения, а просто передавала ему значения.
public class TxtLogger : ILogger
    {
        private FileStream f1;
        private StreamWriter output;
        protected string FileName = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\Folder\\Output1.txt";
        protected string CurrentLogText;
        protected ThreadStart myThreadDelegate;
        protected Thread thr;
        public TxtLogger()
        {
            f1 = new FileStream(FileName, FileMode.Append);
            output = new StreamWriter(f1);
        }
        public void Log(string message, MessageType messageType)
        {
            lock (this)
            {
                CurrentLogText = "Message text: " + message + ", " + DateTime.Now.ToString() + ", Type: " + messageType;
                output.WriteLine(CurrentLogText);
                f1.Flush();
                output.Flush();
            }
        }
    }
Сверху описано:
        protected ILogger lg1 = new TxtLogger();
        protected ILogger lg2 = new XmlLogger();
        protected ILogger lg3 = new DbLogger();
        protected MessageGenerator[] arr;
  arr = new MessageGenerator[numberOfGen];
                    
                    for (int c = 0; c < arr.Length; c++)
                    {
                        arr[c] = new MessageGenerator(numberOfGen, mseconds);
                        if (checkBox1.Checked)
                        {
                            arr[c].MessageGeneratedEvent += new MessageGenerator.MyDelegate(lg1.Log);
                        }
                        if (checkBox2.Checked)
                            arr[c].MessageGeneratedEvent += new MessageGenerator.MyDelegate(lg2.Log);
                        if (checkBox3.Checked)
                            arr[c].MessageGeneratedEvent += new MessageGenerator.MyDelegate(lg3.Log);
                        arr[c].go();                      
                    }

Решение задачи: «Логирование»

textual
Листинг программы
Thread t = new Thread(Method);
t.Start();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5