Ree*_*iie 5 .net c# ado.net asynchronous winforms
我有一个 DataAdapter,它在一个数据集中填充 5 个数据表。
SqlDataAdapter da = new SqlDataAdapter("Select * from testTable",con);
da.Fill(ds, 0, numberOfRowsToPutInEachDataTable, "DT1");
da.Fill(ds, numberOfRowsToPutInEachDataTable , numberOfRowsToPutInEachDataTable , "DT2");
da.Fill(ds, numberOfRowsToPutInEachDataTable* 2, numberOfRowsToPutInEachDataTable, "DT3");
da.Fill(ds, numberOfRowsToPutInEachDataTable * 3, numberOfRowsToPutInEachDataTable, "DT4");
da.Fill(ds, numberOfRowsToPutInEachDataTable * 4, numberOfRowsToPutInEachDataTable, "DT5");
Run Code Online (Sandbox Code Playgroud)
我的目标是让每个
da.Fill...
Run Code Online (Sandbox Code Playgroud)
同时异步运行。
我没有异步运行事物的经验,并且很难通过研究找到解决方案。谁能告诉我如何让这些 DataAdapter.Fill() 异步运行?
Mat*_*ero -1
使用PLINQ怎么样:
SqlDataAdapter da = new SqlDataAdapter("Select * from testTable", con);
IEnumerable<int> results = new string[]
{
"DT1", "DT2", "DT3", "DT4", "DT5"
}
.AsParallel()
.Select((table, index) => da.Fill(ds,
numberOfRowsToPutInEachDataTable * index,
numberOfRowsToPutInEachDataTable,
table));
Run Code Online (Sandbox Code Playgroud)
绝对不推荐所提出的解决方案。
看来DataSet不支持并发写入操作:
这种类型对于多线程读取操作是安全的。您必须同步所有写入操作。
| 归档时间: |
|
| 查看次数: |
5503 次 |
| 最近记录: |