Bin etwas neu im Multithreading und komme gerade nicht weiter.
Das Konzept habe ich verstanden, nur in der Umsetzung gibts noch keine Praxis
Ich lese eine Textdatei aus und übergebe den Inhalt in ein String-Array.
Dieses String Array soll nun mit X gleichzeitigen Threads bearbeitet werden und in einer weiteren Methode einen Output liefern.
Hier mal mein sehr stark vereinfachter Code:
Ich erstelle mit jedem Thread in der Methode "WorkerMethod" das Object "WorkerClass" und rufe in diesem Object die Methode "WorkData" mitsamt Paremetern auf, welche mir dann entsprechende Daten zurückgeben, die dann via WriteLine auf der Konsole ausgegeben werden.
Ich habe schon ein bisschen experimentiert um mehrere Threads zu erstellen .. Aber kam immer Blödsinn dabei raus (duplicated entries/missing data/etc.).
Kann mir da jemand nen Klapps geben?
mfg,
Max
Das Konzept habe ich verstanden, nur in der Umsetzung gibts noch keine Praxis
Ich lese eine Textdatei aus und übergebe den Inhalt in ein String-Array.
Dieses String Array soll nun mit X gleichzeitigen Threads bearbeitet werden und in einer weiteren Methode einen Output liefern.
Hier mal mein sehr stark vereinfachter Code:
Code:
public void fetchFile()
{
//assign file content to string array
string appPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
string[] rawdata = File.ReadLines(appPath + @"\" + "rawdata.txt").ToArray(); //"
//loop through array
for (int i = 0; i < rawdata.Length; i++)
{
//simple parameters, e.g. taken from rawdata array
string a = "aaa", b = "bbb";
Thread nthread = new Thread(() => WorkerMethod(a, b));
myNewThread.Start();
}
}
public void WorkerMethod(string a, string b)
{
//new objects does get created and method "WorkData" does get called
Workerclass a = new Workerclass();
string result = a.WorkData(a, b); //WorkData returns string
Console.WriteLine(result);
}
Ich erstelle mit jedem Thread in der Methode "WorkerMethod" das Object "WorkerClass" und rufe in diesem Object die Methode "WorkData" mitsamt Paremetern auf, welche mir dann entsprechende Daten zurückgeben, die dann via WriteLine auf der Konsole ausgegeben werden.
Ich habe schon ein bisschen experimentiert um mehrere Threads zu erstellen .. Aber kam immer Blödsinn dabei raus (duplicated entries/missing data/etc.).
Kann mir da jemand nen Klapps geben?
mfg,
Max
Zuletzt bearbeitet: