gpt4 book ai didi

c# - 填充数据集异步

转载 作者:行者123 更新时间:2023-12-03 13:08:16 25 4
gpt4 key购买 nike

下面的方法被用来填充数据集。

如果我们以同步方式调用此方法,则它工作正常。

但是现在我们需要以异步方式调用此方法。因此,我需要做些什么更改,以便下面的方法可以正常工作而没有任何问题。

public DataSet Filldata(string ProcName, string TableName)
{
DataSet ds = new DataSet();
try
{
da = new SqlDataAdapter(ProcName, con);
if (con.State != ConnectionState.Open)
{
con.Open();
}
da.SelectCommand.CommandTimeout = 15000;
da.Fill(ds, TableName);
}
catch (Exception ex)
{
ErrorMsg = ex.Message.ToString();
HMISLogger.logger.Error(ex.Message.ToString() + " " + ProcName, ex);
}
finally
{
con.Close();
da.Dispose();
}
return ds;
}

最佳答案

您可以如下声明类级别的静态对象

private static object lockObject = new object();

并如下修改您的方法,因为Fill方法负责连接的打开和关闭,所以我们可以在它之前添加lock语句。
 public DataSet Filldata(string ProcName, string TableName)
{
DataSet ds = new DataSet();
try
{

da = new SqlDataAdapter(ProcName, con);
da.SelectCommand.CommandTimeout = 15000;
lock (lockObj)
{
da.Fill(ds, TableName);
}
}
catch (Exception ex) {
ErrorMsg = ex.Message.ToString();
HMISLogger.logger.Error(ex.Message.ToString() + " " + ProcName, ex);
}
finally {
con.Close();
da.Dispose();
}
return ds;
}

关于c# - 填充数据集异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50208241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com