本文整理汇总了C#中NpgsqlConnection.OpenAsync方法的典型用法代码示例。如果您正苦于以下问题:C# NpgsqlConnection.OpenAsync方法的具体用法?C# NpgsqlConnection.OpenAsync怎么用?C# NpgsqlConnection.OpenAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NpgsqlConnection
的用法示例。
在下文中一共展示了NpgsqlConnection.OpenAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TimeoutGettingConnectorFromExhaustedPoolAsync
public async Task TimeoutGettingConnectorFromExhaustedPoolAsync()
{
var connString = new NpgsqlConnectionStringBuilder(ConnectionString)
{
MaxPoolSize = 1,
Timeout = 1
};
using (var conn1 = new NpgsqlConnection(connString))
{
await conn1.OpenAsync();
// Pool is exhausted
using (var conn2 = new NpgsqlConnection(connString))
Assert.That(async () => await conn2.OpenAsync(), Throws.Exception.TypeOf<NpgsqlException>());
}
// conn1 should now be back in the pool as idle
using (var conn3 = new NpgsqlConnection(connString))
conn3.Open();
}
示例2: CancelOpenAsync
public async Task CancelOpenAsync()
{
var connString = new NpgsqlConnectionStringBuilder(ConnectionString) {
ApplicationName = nameof(CancelOpenAsync),
MaxPoolSize = 1,
};
using (var conn1 = new NpgsqlConnection(connString))
{
await conn1.OpenAsync();
// Pool is exhausted
using (var conn2 = new NpgsqlConnection(connString))
{
var cts = new CancellationTokenSource(1000);
Assert.That(async () => await conn2.OpenAsync(cts.Token), Throws.Exception.TypeOf<TaskCanceledException>());
}
// The cancelled open attempt should have left a cancelled task completion source
// in the pool's wait queue. Make sure that's so
using (var conn2 = new NpgsqlConnection(connString))
{
new Timer(o => conn1.Close(), null, 1000, Timeout.Infinite);
await conn2.OpenAsync();
}
}
}
示例3: GetConnectorFromExhaustedPoolAsync
public async Task GetConnectorFromExhaustedPoolAsync()
{
var connString = new NpgsqlConnectionStringBuilder(ConnectionString)
{
MaxPoolSize = 1,
Timeout = 0
};
using (var conn1 = new NpgsqlConnection(connString))
{
await conn1.OpenAsync();
// Pool is exhausted
using (var conn2 = new NpgsqlConnection(connString))
{
new Timer(o => conn1.Close(), null, 1000, Timeout.Infinite);
await conn2.OpenAsync();
}
}
}