Considere el código:Understanding Thread/BeginInvoke? [Principiantes]
class Work
{
public void DoStuff(string s)
{
Console.WriteLine(s);
// .. whatever
}
}
class Master
{
private readonly Work work = new Work();
public void Execute()
{
string hello = "hello";
// (1) is this an ugly hack ?
var thread1 = new Thread(new ParameterizedThreadStart(o => this.work.DoStuff((string)o)));
thread1.Start(hello);
thread1.Join();
// (2) is this similar to the one above?
new Action<string>(s => this.work.DoStuff(s)).BeginInvoke(hello, null, null);
}
}
es (1) una forma aceptable de fácil iniciar un trabajo en un hilo separado? Si no, una mejor alternativa sería muy apreciada.
Está (2) haciendo lo mismo? Creo que lo que pido es que si se inicia un nuevo hilo, o ..
espera que usted pueda ayudar a un principiante a una mejor comprensión :)
/Moberg
Hay un gran artículo aquí: http://ondotnet.com/pub/a/dotnet/2003 /02/24/asyncdelegates.html que explica los matices entre subprocesos y delegados asincrónicos. –
Usar algo tan costoso como un hilo y luego desperdiciarlo con Thread.Join * no * acceptable. Hay muchos recursos para ayudarlo a elegir entre el subproceso y una secuencia de subprocesos. –