Documente Academic
Documente Profesional
Documente Cultură
NET
El framework da soporte a aplicaciones con hilos
(intercalados o ejecutados independientemente si hay
varios procesadores).
Los hilos se pueden lanzar, destruir, pausar, suspender
hasta notificación, notificar, sincronizar…
Espacio System.Threading
Llamadas asíncronas: la ejecución de un método en un
hilo aparte. El hilo llamante sigue ejecutándose. Se
“bifurca” el flujo de ejecución
El planificador del SO asigna ranuras de tiempo a cada
hilo (timeslices) de 15 a 30 ms (depende de la versión del
SO y del procesador).
Desarrollo Basado en Componentes - Curso 10/11 - U. Murcia - J. Sáez 1
3.9 Hilos
Hacer una pausa, en un hilo secundario o en el
principal
Thread.Sleep(1000) //milisegundos
3
3.9 Hilos en .NET
Ejemplo HilosEjemplo1.cs (web, [2]). ¿Por qué?
public static void Main() {
Thread t = new Thread(new
ThreadStart(ThreadProc));
t.Start();
…
Console.WriteLine("Main thread: Do
some work.");
Método “M”
public static void M(IAsyncResult obj) {
Console.WriteLine(“Llamado a M() con {0}”, obj.AsyncState); }
Detalles en [6]
Desarrollo Basado en Componentes - Curso 10/11 - U. Murcia - J. Sáez 7
3.9 Hilos. Clase
System.Threading.Thread
ThreadStart no admite parámetros de salida.
¿Cómo se puede invocar a hilos con parámetros
de E/S?
Ejemplo HilosPasoDeParametros.cs (web, [1])
– Clase intermediaria que lleva los parámetros y un
callback para devolver el resultado
– ¿Otra forma de hacerlo?
En el hilo:
tbMsg.Invoke(new UpdateTextCallback(this.UpdateText),
new object[]{“Texto generado desde otro hilo.”});
V. ejemplos BackgroundWorkerExample y
BackgroundWorkerExample2 (Fibonacci)
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum)]
class AyudaAttribute: Attribute {
private string autor;
private string url;
public Ayuda(string URL) { url=URL; }
public string Autor {
set {autor = value;}
get {return autor;}
}}
Uso
[Ayuda("http://www.josan.com/Clases/B.html", Autor="José Antonio
González Seco")] class B {}
Desarrollo Basado en Componentes - Curso 10/11 - U. Murcia - J. Sáez 22
3.10 Atributos
Definidos por el programador.
V. ejemplo AtributosDefinirYLeer