Bạn không có nhiều lệnh chạy trên kết nối, bạn có hai lệnh chạy tuần tự, cái này sau cái kia. Khi lệnh đầu tiên hết thời gian chờ, không có lệnh nào khác đang chờ xử lý trên kết nối. Mã của bạn không gửi lệnh thứ hai để thực thi cho đến khi lệnh đầu tiên thành công hoặc đã đưa ra một ngoại lệ.
Đoạn cuối cùng từ tài liệu bạn đã trích dẫn nên đọc: Trong trường hợp nhiều đối tượng OracleCommand sử dụng cùng một kết nối đồng thời , ...
static void Main(string[] args)
{
using (var conn = new OracleConnection("Pooling=False;...")) // why?
using (var cmd1 = conn.CreateCommand())
using (var cmd2 = conn.CreateCommand())
{
cmd1.CommandText = "UPDATE employee SET empname = 'temp1' WHERE id = 1";
cmd2.CommandText = "UPDATE employee SET empname = 'temp2' WHERE id = 2";
cmd1.CommandTimeout = 30;
cmd2.CommandTimeout = 30;
conn.Open();
// there are no commands on conn yet
try { cmd1.ExecuteNonQuery(); } // cmd1 is the only command on conn
catch (OracleException) { } // if timeout, no other command affected
// cmd1 is no longer on conn
try { cmd2.ExecuteNonQuery(); } // cmd2 is the only command on conn
catch (OracleException) { } // if timeout, no other command affected
// cmd2 is no longer on conn
}
}