У меня есть служба Windows, которая выполняется через равные промежутки времени ... Вот фрагмент кода:
protected override void OnStart(string[] args)
{
tickTack = new Timer(10000);
tickTack.Elapsed += new ElapsedEventHandler(tickTack_Elapsed);
tickTack.Start();
}
protected override void OnStop()
{
tickTack.Stop();
}
private void tickTack_Elapsed(object sender, ElapsedEventArgs e)
{
objProc = new Processing();
objProc.start();
}
В моем start()
методе обработки класса выполняю мою фактическую работу, как показано ниже.
public void start()
{
try
{
Process_Requests();
Process_Exports();
}
catch (Exception ex)
{
ErrorLogs.SaveError(ex, "");
}
}
Как происходит выполнение, когда выполнение выполняется в одном потоке ??? Например, первый метод требует времени для выполнения, тогда как насчет второго метода ????
Теперь я хочу вызвать Process_request()
и Preocess_export()
методы. Каждый метод должен подключаться к нескольким базам данных. В этой ситуации мне нужно было бы создавать новую ветку для каждого соединения и выполнять свою работу ... Я не уверен.
public void start()
{
try
{
#region
sqlConObjects = new List<SqlConnection>();
// Here i am getting multiple connection strings
List<string> conStrings = GetConnectionStrings();
foreach (string strCon in conStrings)
{
SqlConnection sqlCon = new SqlConnection(strCon);
sqlConObjects.Add(sqlCon);
}
foreach (SqlConnection sqlCon in sqlConObjects)
{
//sqlCon.Open();
Thread t = new Thread(ProcessRequest);
t.Start((object)sqlCon);
Thread t1=new Thread(ProcessExports);
t1.Start((object)sqlCon);
}
#endregion
}
catch (Exception ex)
{
ErrorLogs.SaveError(ex, "");
}
}
Может кто-нибудь объяснить, как это сделать ... это тема создана или нет необходимости ??? Как должно выполняться выполнение, если мы не создаем поток для каждого объекта подключения.