[基于DB中更新的C#更新应用程序

问题描述 投票:0回答:1

我正在用C#创建一个聊天应用程序,客户端可以在其中进行私人聊天,但是我正在努力根据数据库(sql-server)中的更改来更新消息。

我应该创建一个持续运行的线程,该线程在输出最后一个消息ID之后请求数据吗?我认为这可能效率不高,还有其他方法吗?还是可以推荐一种更好的方法?

   public void Display_Messages(dynamic listbox, int conversation_id)
{
    Connection _connection = new Connection();
    _connection.conn.Open();
    string sql = "SELECT userId, text, messageId FROM message WHERE conversationId =" + conversation_id + ";";  // Update Later to use PS
    dynamic command = new SqlCommand(sql, _connection.conn);
    dynamic data_reader = command.ExecuteReader();
    while (data_reader.Read())
    {
        listbox.Items.Add(data_reader.GetValue(0) +":"+data_reader.GetValue(1));
    }
    data_reader.Close(); command.Dispose(); _connection.conn.Close();
}
c# sql-server database
1个回答
0
投票

您可以使用SQL Server的broker service来通知您的自定义数据更改,但是出于性能方面的考虑,侦听器上不得有太多的侦听器。轮询机制通常效率不高,即使没有新数据要通知,也会给系统带来恒定的负载。您可以找到在线使用broker service所需的所有信息。

© www.soinside.com 2019 - 2024. All rights reserved.