ich wollte aus einer Applikation Page einen neuen Thread starten, da die Aufgabe potentiell eine lange Zeit dauern wird:
new Thread(() => Methode(web, list)).Start();
public static void Methode(SPWeb web, SPList list) {...}
Das scheint auch so lange zu funktionieren, bis ich den Thread ein zweites Mal starten möchte und die erste Abarbeitung noch läuft (auf unterschiedlichen Listen). In dem Moment wird dann die og. Exception geworfen, mit dem Hinweis:
{"Es wurde versucht, Aufrufe mit mehreren Threads im Singlethread-Modus durchzuführen. (Ausnahme von HRESULT: 0x80010102 (RPC_E_ATTEMPTED_MULTITHREAD))"} {"Es wurde versucht, Aufrufe mit mehreren Threads im Singlethread-Modus durchzuführen. (Ausnahme von HRESULT: 0x80010102 (RPC_E_ATTEMPTED_MULTITHREAD))"}
Gibt es eine Möglichkeit wie ich eine Aufgabe asynchron in Sharepoint abarbeiten lassen kann? Eventuell auch mit Rückmeldung in die Application Page.
you have put all the data you'll need (like various IDs, SystemAccount.UserToken etc.) into variables before running the delegate, and don't access any objects with associated SPRequest (webs, lists, items, users...) from inside the delegate. And, of course, the same holds for data that goes out of the delegate - you can return web ID, list ID and item ID, but you better not return SPListItem.
Das bedeutet für dich: Du darfst die Parameter (SPWeb web, SPList list) nicht verwenden und musst eigene Variablen verwenden.