У меня есть такой сценарий, когда служба Windows работает на сервере.Каждый час или около того он читает файл журнала и сохраняет содержимое в БД.Теперь будет три файла, и они должны быть прочитаны и сохранены в трех разных таблицах.(Я прочитаю эти строки подключения и т. д. из файла конфигурации). Это может быть достигнуто за счет многопоточности, которую я знаю.Поэтому я хочу вызвать существующий метод readfile в потоке.
Я не знаком с потоками, но так ли это?
NameValueConfigurationCollection config = ConfigurationManager.GetSection("LogDirectoryPath") as NameValueConfigurationCollection;
foreach (DictionaryEntry keyvalue in configs)
{
Thread t = new Thread(new ThreadStart(ExecuteProcess(keyvalue.Key.ToString())));
t.IsBackground = true;
t.Start();
}
private void ExecuteProcess(string path)
{
var xPathDocument = new XPathDocument(path);
XPathNavigator xPathNavigator = xPathDocument.CreateNavigator();
string connectionString = GetXPathQuery(
xPathNavigator,
"/connectionString/@value");
string commandText = GetXPathQuery(
xPathNavigator,
"/commandText/@value");
string filePath = GetXPathQuery(
xPathNavigator,
"/filePath/@value");
SqlConnection sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
ProcessFiles(sqlConnection, commandText, filePath);
}
Нужно ли делатьметод статический?Как насчет используемых переменных?