專案需在兩種不同格式的儲存裝置間進行大量資料轉錄,單執行緒效能不足。解決方案:以 ReaderWriterLockSlim 建立共享同步資料結構,一條執行緒負責讀取外部裝置寫入佇列,多條執行緒從佇列取出資料轉換格式後寫入本地裝置。
Queue<T> 作為緩衝集合,生產者入隊,消費者出隊。// 讀寫介面
public interface IReaderWriter<T> {
T Read(int argument);
void Write(int argument, T instance);
void Delete(int argument);
void Clear();
}
// 佇列實作
public class QueueReaderWriter<T> : IReaderWriter<T> {
private Queue<T> queues = new Queue<T>();
public T Read(int argument) => queues.FirstOrDefault();
public void Write(int argument, T instance) => queues.Enqueue(instance);
public void Delete(int argument) => queues.Dequeue();
public void Clear() { queues.Clear(); queues.TrimExcess(); }
}
此設計實現生產者-消費者模式,有效平衡讀寫速度差異,提升整體轉錄吞吐量。