Почему поток не отрабатывает функцию FileSystemWatcher? - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите, почему поток не отрабатывает функцию FSW
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Net.Sockets;
  7. using System.Runtime.Serialization.Formatters.Binary;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. namespace Server_priem
  12. {
  13. class Program
  14. {
  15. static void Main(string[] args)
  16. {
  17. string ip = "127.0.0.1";
  18. IPHostEntry iphe = Dns.Resolve(ip);
  19. IPAddress ipa = iphe.AddressList[0];
  20. IPEndPoint ipep = new IPEndPoint(ipa, 7700);
  21. Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  22. try
  23. {
  24. s.Bind(ipep);
  25. s.Listen(20);
  26. while (true)
  27. {
  28. Socket handler = s.Accept();
  29. string data = null;
  30. while (true)
  31. {
  32. byte[] bytes = new byte[1024];
  33. handler.Receive(bytes);
  34. data += Encoding.UTF8.GetString(bytes);
  35. if (data.IndexOf("") > -1)
  36. {
  37. Thread t1 = new Thread(new ParameterizedThreadStart(func));
  38. t1.Start(data);
  39. Console.WriteLine(data);
  40. break;
  41. }
  42. }
  43. }
  44. }
  45. catch
  46. { }
  47. }
  48. static void func(object obj)
  49. {
  50. if (obj != null)
  51. {
  52. Searcher search = new Searcher(@"D:\Test", Convert.ToString(obj));
  53. search.Run();
  54. }
  55. }
  56. class Searcher
  57. {
  58. FileSystemWatcher fsw;
  59. public Searcher(string path, string filter)
  60. {
  61. fsw = new FileSystemWatcher(path, filter);
  62. fsw.Created += new FileSystemEventHandler(fsw_Changed);
  63. }
  64. public void Run()
  65. {
  66. fsw.EnableRaisingEvents = true;
  67. }
  68. void fsw_Changed(object sender, FileSystemEventArgs e)
  69. {
  70. File.Move(e.FullPath, @"D:\Test1" + e.Name);
  71. /*ZipFile zip = new ZipFile(@"D:\Test" + e.Name);
  72. zip.ExtractAll(@"D:\Test");*/
  73. fsw.EnableRaisingEvents = false; //отключаем слежение
  74. }
  75. }
  76. }
  77. }

Решение задачи: «Почему поток не отрабатывает функцию FileSystemWatcher?»

textual
Листинг программы
  1. public void Run()
  2. {
  3.     fsw.EnableRaisingEvents = true;
  4.     while(fsw.EnableRaisingEvents)
  5.         Thread.Sleep(50);
  6. }
  7. void fsw_Changed(object sender, FileSystemEventArgs e)
  8. {
  9.     fsw.EnableRaisingEvents = false; //отключаем слежение
  10.     File.Move(e.FullPath, @"D:\Test1" + e.Name);
  11.     zip.ExtractAll(@"D:\Test");*/
  12. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы