Devart.Data.MySql.MySqlDependency 不适用于多个连接

Devart.Data.MySql.MySqlDependency does not work on multiple connections

我有一个关于 Devart.Data.MySql.MySqlDependency class 的问题。我希望有两个依赖项检查数据库的更改,但我是如何得到错误的:

Net packets out of order: received[1], expected[7]

我无法使用 MySqlException 处理此错误。当我 运行 一个依赖它工作正常,但是当我使用两个它失败,并引发异常。

这是我用来 运行 这两个 SqlDependencies 的代码。

public void register(string id) {

        try
        {
            dept = new MySqlDependency();
            dept.AddCommandDependency(objcom);
            dept.CheckTimeout = 100;
            dept.OnChange += Dept_OnChange2;
            objcom.Connection.Name = id;
            string connection = objcom.Connection.ConnectionString;
            MySqlDependency.Start(connection);

        }  catch(MySqlException err) {//The exception is not being handled here}
    }

我创建了其中 class 的一个新实例,然后调用该方法。我这样做了两次,它看起来像这样:

MySqlConnection objcon = new MySqlConnection(databasekoplingsadresse_devart());
        MySqlConnection objcon_ = new MySqlConnection(databasekoplingsadresse_devart());

        SqlDependenCyHandler depthandler = new SqlDependenCyHandler(objcon, "select * from messages");
        depthandler.register("obj1");

        SqlDependenCyHandler depthandler2 = new SqlDependenCyHandler(objcon_, "select * from tasks");
        depthandler2.register("obj2");

在此问题上我非常感谢帮助

您可以不实例化两个不同的依赖项,而是将不同的依赖项添加到同一个对象中吗?类似(未经测试的代码):

MySqlConnection objcon = new MySqlConnection(databasekoplingsadresse_devart());
MySqlCommand cmdMsg = new MySqlCommand("select * from messages", objcon); 
MySqlCommand cmdTasks = new MySqlCommand("select * from tasks", objcon); 

MySqlDependency dependency = new MySqlDependency(cmdMsg, 100); 
dependency.AddCommandDependency(cmdTasks); 
dependency.OnChange += Dept_OnChange2
MySqlDependency.Start(objcon.Connection.ConnectionString); 

这似乎更符合 documentation 显示的用法。