Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Логирование |
Автор: pa6kevi4 30.6.2010, 00:06 | ||||||
Здравствуйте! Вот сижу уже , мучаюсь с заданием. Срочно нужна ваша помощь. Нужно чтобы ЭТО запускалось в отдельном потоке. ЧТОБЫ ОСТАЛЬНАЯ ЧАСТЬ ПРОГРАММЫ, ВЫЗЫВАЮЩАЯ ЭТОТ КЛАСС, НЕ ЖДАЛА ЕГО ВЫПОЛНЕНИЯ, А ПРОСТО ПЕРЕДАВАЛА ЕМУ ЗНАЧЕНИЯ.
Сверху описано:
![]() |
Автор: pa6kevi4 30.6.2010, 22:35 |
![]() |
Автор: ZmeyNet 1.7.2010, 04:50 |
1) где Using? почему он не рядом с FileStream 2) lock (this) -- не есть гуд самого себя лочить 3) не вижу никакой обработки IO ошибок Простое решении (заметь я не сказал верное) : оберни метод лог и в обертке создавай новый поток. Решение посложнее : состоит в том , чтобы записывать логи порциями 1 раз в еденицу времени скажем если у тебя множество логов пишется , то логер будет раз в 2-3 секунды или реже проверять наличие входящих сообщений и записывать их. |
Автор: Mephisto 4.7.2010, 19:03 |
Я бы рекомендовал не изобретать велосипед, а воспользоваться готовым решением http://logging.apache.org/log4net/index.html. И время сэкономишь и результат получишь хороший. Добавлено через 4 минуты и 1 секунду А если необходимо именно так сделать, то попробуй посмотреть в сторону делегата и BeginInvoke. Только нужно сделать писание потокобезопасным. |
Автор: jonie 5.7.2010, 09:11 |
Mephisto, еще есть System.Diagnostic .... log4net конечно удобен, но "нестандартен"... |