Логирование - 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();