我有几个这样的连接:
try
{
OleDbConnection con1;
using (con1 = new OleDbConnection("Provider=MSDAORA.1;Data Source=db1:1521;Persist Security Info=True;Password=password;User ID=username"))
{
con1.Open();
v1 = 1;
con1.Close();
}
}
catch (Exception ex)
{
v1 = 0;
}
try
{
OleDbConnection con2;
using (con2 = new OleDbConnection("Provider=MSDAORA.1;Data Source=db2:1521;Persist Security Info=True;Password=password;User ID=username"))
{
con2.Open();
v2 = 1;
con2.Close();
}
}
catch (Exception ex)
{
v2 = 0;
}
在page_load中并按顺序工作。我需要并行运行此连接。我怎样才能做到这一点?
使用C#6和.NET 4.5,您可以将TPL与async一起使用,并且代码看起来更加简洁:
static void Main()
{
var v1Task = Connect();
var v2Task = Connect();
var results = Task.WhenAll(v1Task, v2Task);
var v1 = results.Result[0];
var v2 = results.Result[1];
}
static async Task<int> Connect()
{
int v;
try
{
using (var con2 = new OleDbConnection("Provider=MSDAORA.1;Data Source=db2:1521;Persist Security Info=True;Password=password;User ID=username"))
{
await con2.OpenAsync();
v = 1;
con2.Close();
}
}
catch (Exception)
{
v = 0;
}
return v;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句