запись файла надо оптимизировать для интенсивного трафика
я очень плохо знаком с C #, и это мой первый вопрос, пожалуйста, будьте нежны со мной
Я пытаюсь написать приложение для сбора некоторых тиковых данных от поставщика данных, ниже приведена основная часть программы.
void zf_TickEvent(object sender, ZenFire.TickEventArgs e)
{
output myoutput = new output();
myoutput.time = e.TimeStamp;
myoutput.product = e.Product.ToString();
myoutput.type = Enum.GetName(typeof(ZenFire.TickType), e.Type);
myoutput.price = e.Price;
myoutput.volume = e.Volume;
using (StreamWriter writer = File.AppendText("c:\\log222.txt"))
{
writer.Write(myoutput.time.ToString(timeFmt) + ",");
writer.Write(myoutput.product + "," );
writer.Write(myoutput.type + "," );
writer.Write(myoutput.price + ",");
writer.Write(myoutput.volume + ",");
}
я успешно записал данные в текстовый файл, однако я знаю, что этот метод будет вызываться примерно 10000 раз в секунду в пиковое время, и открывать файл и добавлять его много раз в секунду очень неэффективно, мне было указано использовать буфер или какой-то еще, но я понятия не имею, как это сделать, я пытаюсь прочитать документ, но я все еще не понимаю, поэтому я обращаюсь за помощью.
Пожалуйста, дайте мне некоторый (рабочий) код фрагмента, чтобы я мог указать направление записи. Спасибо
РЕДАКТИРОВАТЬ: я максимально упростил код
using (StreamWriter streamWriter = File.AppendText("c:\\output.txt"))
{
streamWriter.WriteLine(string.Format("{0},{1},{2},{3},{4}",
e.TimeStamp.ToString(timeFmt),
e.Product.ToString(),
Enum.GetName(typeof(ZenFire.TickType), e.Type),
e.Price,
e.Volume));
}
ED сказал мне, чтобы сделать мой поток в поле, как выглядит синтаксис? Кто-нибудь может опубликовать код, чтобы помочь мне? большое спасибо