2

かなり定期的に選択すると、 SqlDataReader.Close() への呼び出しが戻るのに10秒以上かかる場合があります。唯一の異常は、select が 20 行を返すことですが、この場合、どの行も読み取られません。

DbDataReader reader = (DbDataReader) cmd.ExecuteReader(CommandBehavior.Default);
reader.MoveNext();
var row = de.Current;

// lots of other code that does not touch this.
reader.Close();

なぜそんなに時間がかかるのですか?さらに重要なことは、それを速くするために何ができるでしょうか?

4

1 に答える 1

1

I couldn't find out what/why this is occurring. So on the call to close my object, I create a worker thread and have that close the data reader and connection. I then return immediately so the user sees no delay. Works fine.

Update: As per SqlDataReader.Close() it can be reduced by calling the Cancel method of the associated SqlCommand object before calling the Close method. h/t Lingaraj Mishra

于 2012-11-14T20:33:56.340 に答える