DataTable 的线程安全问题
背景
虽然说一般只读不太会涉及到线程安全问题,
但是实际在编写代码的过程中发现data table即使是读取也是线程不安全的.
我的当时的代码是想要在多线中基于此data table创建一个data row,一开始以为是闭包的问题,
后来解决闭包问题之后,发现还有有问题,于是使用线程锁,最后总算才解决问题。
使用锁
- 使用锁机制:通过
lock
关键字来保护对DataTable
的访问。
private static readonly object _dataTableLock = new object();
// 修改 HandleLine 方法
static DataRow? HandleLine(string[] lines, List<int> idxList, DataTable dataTable, int lineIdx)
{
// ... 省略其他逻辑 ...
if (lineIdx > 2)
{
//
标签:newRow,idxList,安全,线程,table,data,DataTable
From: https://www.cnblogs.com/zhuoss/p/18644419