arquivo de gravação precisa ser otimizado para tráfego pesado
Eu sou muito novo em C #, e esta é a minha primeira pergunta, por favor, seja gentil comigo
Eu estou tentando escrever um aplicativo para capturar alguns dados de escala do provedor de dados, abaixo é a parte principal do programa
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 + ",");
}
Eu tenho sucesso escrever os dados no arquivo de texto, no entanto eu sei que esse método será chamado como 10000 vezes por segundo durante o horário de pico e abrir um arquivo e anexá-lo muitas vezes por segundo é muito ineficiente, fui apontado para usar um buffer ou algum tipo, mas eu não tenho idéia de como fazê-lo, eu tento ler o documento, mas eu ainda não entendo, é por isso que eu me entrego aqui para obter ajuda.
Por favor, me dê algum código de trecho (de trabalho) para que eu possa apontar para a direção de gravação. obrigado
EDIT: eu simplifiquei o código, tanto quanto possível
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 me disse para fazer o meu fluxo para um campo, como é a sintaxe parece? Alguém pode postar algum código para me ajudar? Muito obrigado