Я написал службу Windows для одного из наших локальных серверов. Эта служба работает как драгоценный камень на моей локальной машине, делает то, что она должна (ACCP для обмена данными db), но я не слишком знаком с зависимостями. Является ли это подходящим способом структурирования программы?Sql Зависимость от сервисного брокера
string DBP3_US = DBP3_US;
string PING_DEPENDENCY = "SELECT [SomeColumn] FROM [SomeTable];";
protected override void OnStart(string[] args)
{
SqlDependency.Start(DBP3_US);
Thread Ping_US = new Thread(PingThread);
Ping_US.Name = "ping_US";
Ping_US.Start();
}
private void PingThread()
{
CreateCommandWithDependency(PING_DEPENDENCY, Ping_OnChange);
}
private void CreateCommandWithDependency(string queryText, OnChangeEventHandler e, string db = DBP3_US)
{
using (SqlConnection con = new SqlConnection(db))
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = queryText;
cmd.CommandType = CommandType.Text;
cmd.Notification = null;
SqlDependency sqlDep = new SqlDependency(cmd);
sqlDep.OnChange += new OnChangeEventHandler(e);
con.Open();
cmd.ExecuteNonQuery();
}
}
private void Ping_OnChange(object sender, SqlNotificationEventArgs e)
{
PingDependency();
Thread Ping_US = new Thread(PingThread);
Ping_US.Start();
}
private void PingDependency(string db = DBP3_US)
{
// Do whatever operations are required.
}