Есть несколько вещей, которые вы можете сделать, чтобы ускорить это.
Как правило, операции ввода-вывода являются дорогими (медленными), поэтому старайтесь избегать выполнения многих из них, а вместо этого пишите только один или несколько раз.
Исправление строк также происходит медленно, если вы делаете это много раз. Поэтому вместо этого вы должны использовать StringBuilder.
И, наконец, мне кажется, что дата и время, которые вы используете, во многих случаях (но, возможно, не во всех!) Будут иметь одинаковое значение. Если это так, то вы можете вызвать это только один раз, а затем вывести то же значение.
Вы также можете ускорить оператор выбора каналов (как в других сообщениях).
Тогда у вас будет такой код:
StringBuilder sb = new StringBuilder();
string dtValue = DateTime.Now.ToString();
for (int i = 0; channels.First().RawData.Count; i++)
{
sb.Append(dtValue).Append(",").Append(channels.First().RawData[i]).Append(Environment.NewLine);
}
//Write just once.
using (var sw = new StreamWriter(FileStream, Encoding.Default))
{
sw.Writeline(sb.ToString());
sw.Close();
}
Редактировать: обновлен для использования channel.First (). RawData [i], согласно комментариям.