ich eine Website haben, gibt es ein Verfahren wie folgt aus:Wie kann ich den aktuellen Thread in einer Methode identifizieren?
public Context GetContext()
{
...
}
Diese Methode mehrmals aufgerufen wird, wenn ein Benutzer-Login auf der Website, und die Methode einige Informationen zurück.
Jetzt habe ich einen anderen Thread von der Website starten, wird der Thread etwas tun. Und im Thread-Job wird diese Methode auch mehrmals aufgerufen.
Das Problem ist, in diesen beiden Situationen sollte die Methode unterschiedliche Ergebnis zurückgeben, aus irgendeinem Grund kann ich keine andere Methode verwenden oder Parameter zu der Methode hinzufügen.
Gibt es trotzdem den aktuellen Thread in einer Methode zu identifizieren? Grundsätzlich möchte ich so etwas archivieren:
var thread = new Thread(GetContext);
thread.SomeFlag = True.
thread.Start()
public Context GetContext()
{
Var thread = GetCurrentThread();
If(thread.SomeFlag == True)
//do some thing...
Else
//do some thing...
}
Ist das möglich?
Versuchen Sie 'System.Threading.Thread.CurrentThread.ManagedThreadId'. – Enigmativity
Explizit das Ausführen anderer Threads innerhalb einer asp.net-Anwendung ist fast immer die falsche Lösung für ein wahrgenommenes Problem. Wenn wir wüssten, welches * Problem * Sie mit diesem anderen Thread lösen wollten, können wir vielleicht anständige Lösungen anbieten. –
@Damien_The_Unbeliever ist es dort kann sowieso vermeiden, andere Threads zum Ausführen einer Hintergrundaufgabe in asp.net laufen zu lassen? – jarvanJiang