Session.NET40.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.Threading.Tasks;
  2. using System.Linq;
  3. using System;
  4. using Renci.SshNet.Messages;
  5. using System.Threading;
  6. namespace Renci.SshNet
  7. {
  8. /// <summary>
  9. /// Provides functionality to connect and interact with SSH server.
  10. /// </summary>
  11. public partial class Session
  12. {
  13. partial void HandleMessageCore(Message message)
  14. {
  15. HandleMessage((dynamic)message);
  16. }
  17. /// <summary>
  18. /// Executes the specified action in a separate thread.
  19. /// </summary>
  20. /// <param name="action">The action to execute.</param>
  21. partial void ExecuteThread(Action action)
  22. {
  23. ThreadPool.QueueUserWorkItem(o => action());
  24. }
  25. partial void InternalRegisterMessage(string messageName)
  26. {
  27. lock (_messagesMetadata)
  28. {
  29. Parallel.ForEach(
  30. from m in _messagesMetadata where m.Name == messageName select m,
  31. item => { item.Enabled = true; item.Activated = true; });
  32. }
  33. }
  34. partial void InternalUnRegisterMessage(string messageName)
  35. {
  36. lock (_messagesMetadata)
  37. {
  38. Parallel.ForEach(
  39. from m in _messagesMetadata where m.Name == messageName select m,
  40. item => { item.Enabled = false; item.Activated = false; });
  41. }
  42. }
  43. }
  44. }