private void OnChanged(object source, FileSystemEventArgs e) { watcher.EnableRaisingEvents = false; string[] lines; List <string> list = new List <string>(); Thread.Sleep(3000); using (FileStream fs = new FileStream("transaction_log_files\\" + e.Name, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) { using (StreamReader sr = new StreamReader(fs)) { string line; while ((line = sr.ReadLine()) != null) { list.Add(line); } lines = list.ToArray(); foreach (string l in lines.Skip(4)) { string[] lineValues = l.Split(' '); int accountId = Convert.ToInt32(lineValues[0]); double depositAmount = Convert.ToDouble(lineValues[1], CultureInfo.InvariantCulture); TransactionDeposit transactionDeposit = new TransactionDeposit(accountId, depositAmount, e.Name, lines[0], lines[1], lines[2], Convert.ToInt32(lines[3])); connection.DepositBalance(accountId, depositAmount); this.transactionDepositList.Add(transactionDeposit); } watcher.EnableRaisingEvents = true; } } //try //{ // watcher.EnableRaisingEvents = false; // string[] lines = File.ReadAllLines("transaction_log_files\\" + e.Name); // foreach (string line in lines.Skip(4)) // { // string[] lineValues = line.Split(' '); // int accountId = Convert.ToInt32(lineValues[0]); // double depositAmount = Convert.ToDouble(lineValues[1], CultureInfo.InvariantCulture); // TransactionDeposit transactionDeposit = new TransactionDeposit(accountId, depositAmount, e.Name, lines[0], lines[1], lines[2], Convert.ToInt32(lines[3])); // connection.DepositBalance(accountId, depositAmount); // //this.transactionDepositList.Add(transactionDeposit); // } //} //catch (Exception ex) //{ // Debug.WriteLine(ex.Message); //} //finally //{ // watcher.EnableRaisingEvents = true; // if (watcher != null) // { // ((IDisposable)watcher).Dispose(); // StartWatcher(); // } //} }