/ejemploMultiThread/ejemploMultiThread/Program.cs

https://gitlab.com/edgardo001/csharp-demos
C# | 213 lines | 186 code | 11 blank | 16 comment | 1 complexity | 420ce68a0363a1277cc339fe488cab8e MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. namespace ejemploMultiThread
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. //Metodo1();
  14. //Metodo2();
  15. Metodo3();
  16. Console.ReadLine();
  17. }
  18. /// <summary>
  19. /// Ejecucion de hilos con tiempo predeterminado
  20. /// </summary>
  21. private static void Metodo3()
  22. {
  23. List<Tareas> tareas = new List<Tareas>();
  24. tareas.Add(new Tareas("Tarea a", "a"));
  25. tareas.Add(new Tareas("Tarea b", "b"));
  26. tareas.Add(new Tareas("Tarea c", "c"));
  27. tareas.Add(new Tareas("Tarea d", "d"));
  28. tareas.Add(new Tareas("Tarea e", "e"));
  29. tareas.Add(new Tareas("Tarea f", "f"));
  30. tareas.Add(new Tareas("Tarea g", "g"));
  31. tareas.Add(new Tareas("Tarea h", "h"));
  32. tareas.Add(new Tareas("Tarea i", "i"));
  33. tareas.Add(new Tareas("Tarea j", "j"));
  34. tareas.Add(new Tareas("Tarea k", "k"));
  35. tareas.Add(new Tareas("Tarea l", "l"));
  36. tareas.Add(new Tareas("Tarea m", "m"));
  37. tareas.Add(new Tareas("Tarea n", "n"));
  38. tareas.Add(new Tareas("Tarea o", "o"));
  39. tareas.Add(new Tareas("Tarea p", "p"));
  40. tareas.Add(new Tareas("Tarea q", "q"));
  41. tareas.Add(new Tareas("Tarea r", "r"));
  42. tareas.Add(new Tareas("Tarea s", "s"));
  43. tareas.Add(new Tareas("Tarea t", "t"));
  44. tareas.Add(new Tareas("Tarea u", "u"));
  45. tareas.Add(new Tareas("Tarea v", "v"));
  46. tareas.Add(new Tareas("Tarea w", "w"));
  47. tareas.Add(new Tareas("Tarea x", "x"));
  48. tareas.Add(new Tareas("Tarea y", "y"));
  49. tareas.Add(new Tareas("Tarea z", "z"));
  50. tareas.Add(new Tareas("Tarea a", "a"));
  51. tareas.Add(new Tareas("Tarea b", "b"));
  52. tareas.Add(new Tareas("Tarea c", "c"));
  53. tareas.Add(new Tareas("Tarea d", "d"));
  54. tareas.Add(new Tareas("Tarea e", "e"));
  55. tareas.Add(new Tareas("Tarea f", "f"));
  56. tareas.Add(new Tareas("Tarea g", "g"));
  57. tareas.Add(new Tareas("Tarea h", "h"));
  58. tareas.Add(new Tareas("Tarea i", "i"));
  59. tareas.Add(new Tareas("Tarea j", "j"));
  60. tareas.Add(new Tareas("Tarea k", "k"));
  61. tareas.Add(new Tareas("Tarea l", "l"));
  62. tareas.Add(new Tareas("Tarea m", "m"));
  63. tareas.Add(new Tareas("Tarea n", "n"));
  64. tareas.Add(new Tareas("Tarea o", "o"));
  65. tareas.Add(new Tareas("Tarea p", "p"));
  66. tareas.Add(new Tareas("Tarea q", "q"));
  67. tareas.Add(new Tareas("Tarea r", "r"));
  68. tareas.Add(new Tareas("Tarea s", "s"));
  69. tareas.Add(new Tareas("Tarea t", "t"));
  70. tareas.Add(new Tareas("Tarea u", "u"));
  71. tareas.Add(new Tareas("Tarea v", "v"));
  72. tareas.Add(new Tareas("Tarea w", "w"));
  73. tareas.Add(new Tareas("Tarea x", "x"));
  74. tareas.Add(new Tareas("Tarea y", "y"));
  75. tareas.Add(new Tareas("Tarea z", "z"));
  76. tareas.Add(new Tareas("Tarea a", "a"));
  77. tareas.Add(new Tareas("Tarea b", "b"));
  78. tareas.Add(new Tareas("Tarea c", "c"));
  79. tareas.Add(new Tareas("Tarea d", "d"));
  80. tareas.Add(new Tareas("Tarea e", "e"));
  81. tareas.Add(new Tareas("Tarea f", "f"));
  82. tareas.Add(new Tareas("Tarea g", "g"));
  83. tareas.Add(new Tareas("Tarea h", "h"));
  84. tareas.Add(new Tareas("Tarea i", "i"));
  85. tareas.Add(new Tareas("Tarea j", "j"));
  86. tareas.Add(new Tareas("Tarea k", "k"));
  87. tareas.Add(new Tareas("Tarea l", "l"));
  88. tareas.Add(new Tareas("Tarea m", "m"));
  89. tareas.Add(new Tareas("Tarea n", "n"));
  90. tareas.Add(new Tareas("Tarea o", "o"));
  91. tareas.Add(new Tareas("Tarea p", "p"));
  92. tareas.Add(new Tareas("Tarea q", "q"));
  93. tareas.Add(new Tareas("Tarea r", "r"));
  94. tareas.Add(new Tareas("Tarea s", "s"));
  95. tareas.Add(new Tareas("Tarea t", "t"));
  96. tareas.Add(new Tareas("Tarea u", "u"));
  97. tareas.Add(new Tareas("Tarea v", "v"));
  98. tareas.Add(new Tareas("Tarea w", "w"));
  99. tareas.Add(new Tareas("Tarea x", "x"));
  100. tareas.Add(new Tareas("Tarea y", "y"));
  101. tareas.Add(new Tareas("Tarea z", "z"));
  102. tareas.Add(new Tareas("Tarea a", "a"));
  103. tareas.Add(new Tareas("Tarea b", "b"));
  104. tareas.Add(new Tareas("Tarea c", "c"));
  105. tareas.Add(new Tareas("Tarea d", "d"));
  106. tareas.Add(new Tareas("Tarea e", "e"));
  107. tareas.Add(new Tareas("Tarea f", "f"));
  108. tareas.Add(new Tareas("Tarea g", "g"));
  109. tareas.Add(new Tareas("Tarea h", "h"));
  110. tareas.Add(new Tareas("Tarea i", "i"));
  111. tareas.Add(new Tareas("Tarea j", "j"));
  112. tareas.Add(new Tareas("Tarea k", "k"));
  113. tareas.Add(new Tareas("Tarea l", "l"));
  114. tareas.Add(new Tareas("Tarea m", "m"));
  115. tareas.Add(new Tareas("Tarea n", "n"));
  116. tareas.Add(new Tareas("Tarea o", "o"));
  117. tareas.Add(new Tareas("Tarea p", "p"));
  118. tareas.Add(new Tareas("Tarea q", "q"));
  119. tareas.Add(new Tareas("Tarea r", "r"));
  120. tareas.Add(new Tareas("Tarea s", "s"));
  121. tareas.Add(new Tareas("Tarea t", "t"));
  122. tareas.Add(new Tareas("Tarea u", "u"));
  123. tareas.Add(new Tareas("Tarea v", "v"));
  124. tareas.Add(new Tareas("Tarea w", "w"));
  125. tareas.Add(new Tareas("Tarea x", "x"));
  126. tareas.Add(new Tareas("Tarea y", "y"));
  127. tareas.Add(new Tareas("Tarea z", "z"));
  128. tareas.Add(new Tareas("Tarea a", "a"));
  129. tareas.Add(new Tareas("Tarea b", "b"));
  130. tareas.Add(new Tareas("Tarea c", "c"));
  131. tareas.Add(new Tareas("Tarea d", "d"));
  132. tareas.Add(new Tareas("Tarea e", "e"));
  133. tareas.Add(new Tareas("Tarea f", "f"));
  134. tareas.Add(new Tareas("Tarea g", "g"));
  135. tareas.Add(new Tareas("Tarea h", "h"));
  136. tareas.Add(new Tareas("Tarea i", "i"));
  137. tareas.Add(new Tareas("Tarea j", "j"));
  138. tareas.Add(new Tareas("Tarea k", "k"));
  139. tareas.Add(new Tareas("Tarea l", "l"));
  140. tareas.Add(new Tareas("Tarea m", "m"));
  141. tareas.Add(new Tareas("Tarea n", "n"));
  142. tareas.Add(new Tareas("Tarea o", "o"));
  143. tareas.Add(new Tareas("Tarea p", "p"));
  144. tareas.Add(new Tareas("Tarea q", "q"));
  145. tareas.Add(new Tareas("Tarea r", "r"));
  146. tareas.Add(new Tareas("Tarea s", "s"));
  147. tareas.Add(new Tareas("Tarea t", "t"));
  148. tareas.Add(new Tareas("Tarea u", "u"));
  149. tareas.Add(new Tareas("Tarea v", "v"));
  150. tareas.Add(new Tareas("Tarea w", "w"));
  151. tareas.Add(new Tareas("Tarea x", "x"));
  152. tareas.Add(new Tareas("Tarea y", "y"));
  153. tareas.Add(new Tareas("Tarea z", "z"));
  154. foreach (Tareas item in tareas)
  155. {
  156. Thread hilo1 = new Thread(item.tarea2);
  157. hilo1.Start();
  158. }
  159. }
  160. /// <summary>
  161. /// Ejecucion de hilos con tiempo predeterminado
  162. /// </summary>
  163. private static void Metodo2()
  164. {
  165. ArrayList listTareas = new ArrayList();
  166. listTareas.Add("Hilo_1");
  167. listTareas.Add("Hilo_2");
  168. listTareas.Add("Hilo_3");
  169. ArrayList listSecond = new ArrayList();
  170. listSecond.Add(8);
  171. listSecond.Add(16);
  172. listSecond.Add(24);
  173. for (int i = 0; i < listTareas.Count; i++)
  174. {
  175. object tarea = listTareas[i];
  176. string tareas = Convert.ToString(tarea);
  177. object secs = listSecond[i];
  178. int sec = Convert.ToInt32(secs);
  179. Tareas Obj1 = new Tareas(tareas, sec);
  180. //OPCION-1
  181. //Esta linea permite que los procesos se ejecuten de forma secuencial
  182. //Obj1.tarea1();
  183. //OPCION-2
  184. //Estas lineas permiten que procesos se llamen todos a la vez
  185. Thread hilo1 = new Thread(Obj1.tarea1);
  186. hilo1.Start();
  187. }
  188. }
  189. /// <summary>
  190. /// Ejecucion de hilos con tiempo predeterminado
  191. /// </summary>
  192. private static void Metodo1()
  193. {
  194. Tareas obj1 = new Tareas("Hilo_1", 8);
  195. Tareas obj2 = new Tareas("Hilo_2", 16);
  196. Thread hilo1 = new Thread(obj1.tarea1);
  197. Thread hilo2 = new Thread(obj2.tarea1);
  198. hilo1.Start();
  199. hilo2.Start();
  200. }
  201. }
  202. }