Npgsql Commandtimeout值;是0无限期?

时间:2013-03-27 14:15:46

标签: c# visual-studio-2010 npgsql

我还没有找到任何明确说明这一点的东西。如果我在npgsql中为连接对象设置Commandtimeout值,是否会将其设置为无限期等待?

2 个答案:

答案 0 :(得分:4)

是的,0是无限的。

Npgqlstate.cs包含以下代码context.Mediator.CommandTimeout > 0 因此,如果CommandTimeout为0,则Npgsql将永远等待。

internal IEnumerable<IServerResponseObject> ProcessBackendResponsesEnum(NpgsqlConnector context,
    bool cancelRequestCalled)
{
    try
    {
    // Process commandTimeout behavior.

    if ((context.Mediator.CommandTimeout > 0) &&
            (!CheckForContextSocketAvailability(context, SelectMode.SelectRead)))

答案 1 :(得分:-2)

请参阅postgreSQL documentation

  

PGCONNECT_TIMEOUT设置libpq在尝试连接PostgreSQL服务器时将等待的最大秒数。如果未设置或设置为零,libpq将无限期地等待。建议不要将超时设置为小于2秒。