我有一个应用程序,我每 50 毫秒左右非常快地接收大字节数组。
字节数组包含一些信息,如文件名等。数据(字节数组)可能来自多个来源。
每次收到数据时,我都必须找到文件名并将数据保存到该文件名。
我需要一些指导方针来指导我应该如何设计它以使其高效工作。
以下是我的代码...
public class DataSaver
{
private static Dictionary<string, FileStream> _dictFileStream;
public static void SaveData(byte[] byteArray)
{
string fileName = GetFileNameFromArray(byteArray);
FileStream fs = GetFileStream(fileName);
fs.Write(byteArray, 0, byteArray.Length);
}
private static FileStream GetFileStream(string fileName)
{
FileStream fs;
bool hasStream = _dictFileStream.TryGetValue(fileName, out fs);
if (!hasStream)
{
fs = new FileStream(fileName, FileMode.Append);
_dictFileStream.Add(fileName, fs);
}
return fs;
}
public static void CloseSaver()
{
foreach (var key in _dictFileStream.Keys)
{
_dictFileStream[key].Close();
}
}
}
如何改进此代码?我需要创建一个线程来进行保存。