Ho una domanda. È possibile e valido, se ho un oggetto con un metodo DoSomething(), se creo più thread per questo metodo, funzionerà e funzionerà come un proprio thread separato?Creazione di più thread per lo stesso metodo su un'istanza su un oggetto
E.g.
public class SomeClass
{
public void DoSomething()
{
//somethings done here
}
}
public class MainProgram
{
public MainProgram()
{
InitializeComponents();
}
protected override OnStart(string[] args)
{
SomeClass sc = new SomeClass();
Thread workerOne = new Thread(() => sc.DoSomething());
workerOne.Start();
Thread workerTwo = new Thread(() => sc.DoSomething());
workerTwo.Start(); //start a new thread calling same method
}
}
Spero che questo tipo di spieghi cosa intendo. Funzionerebbe o causerebbe qualche problema?
Sto scrivendo un programma che deve essere quasi un software in tempo reale, attualmente sto decidendo se inizializzare una nuova istanza di SomeClass è meglio o no?
Spero che qualcuno possa rispondere. Se la mia domanda non ha senso, si prega di commentare e spiegherò ulteriormente!
Grazie,
Base33
PS Il codice è stato scritto appositamente per l'esempio :)
quale versione di C#/.NET siete attivi? – RobertMS
Link obbligatorio: [ebook gratuito di Joe Albahari] (http://www.albahari.com/threading/) –
Sono un programmatore Java. Ma dopo aver dato un'occhiata più da vicino al tuo codice, sembra che tu possa riutilizzare la stessa istanza di SomeClass. Sebbene, solo un thread sarà in grado di eseguire il metodo mentre l'altro attende il suo turno. Questo è ciò che accade in Java. – CKing