Ich habe ein Problem nicht referenzierte Objekt, wenn mit parallel.invoke aufgerufen wird, das Problem ist, dass, wenn Sie sie eins nach dem anderen die Methoden aufrufen, sie arbeiten.Unreferenced Objekt Fehler mit parallelen Aufruf Methode
try
{
Task t1 = Task.Run(async() =>
{
log.Info("call GetRecentHomeChanges");
GetRecentHomeChanges resultHomeChanges = await apManager.GetRecentHomeChanges(ApplicationContext.Instance.LoggedUser.UserName, ApplicationContext.Instance.LoggedUser.HashedPwd);
ApplicationContext.Instance.pastmeetingList = resultHomeChanges.PastMeetings;
ApplicationContext.Instance.documentsHomePageList = resultHomeChanges.Attachments;
});
Task t2 = Task.Run(() =>
{
//STORE PROCEDURE CALL - INSERISCO I PAST MEETINGS
storeProcedure.insertPastMeetings(ApplicationContext.Instance.LoggedUser.PID, ApplicationContext.Instance.pastmeetingList);
List<PastMeetings> pastMeetingsDB = storeProcedure.selectPastMeetings(ApplicationContext.Instance.LoggedUser.PID);
ApplicationContext.Instance.pastmeetingList = pastMeetingsDB;
});
await Task.WhenAll(t1, t2);
}
catch(Exception ex)
{
throw ex;
}
, wenn ich sie so nennen sie regelmäßig arbeiten:
log.Info("call GetRecentHomeChanges");
GetRecentHomeChanges resultHomeChanges = await apManager.GetRecentHomeChanges(ApplicationContext.Instance.LoggedUser.UserName, ApplicationContext.Instance.LoggedUser.HashedPwd);
ApplicationContext.Instance.pastmeetingList = resultHomeChanges.PastMeetings;
ApplicationContext.Instance.documentsHomePageList = resultHomeChanges.Attachments;
//STORE PROCEDURE CALL - INSERISCO I PAST MEETINGS
storeProcedure.insertPastMeetings(ApplicationContext.Instance.LoggedUser.PID, ApplicationContext.Instance.pastmeetingList);
List<PastMeetings> pastMeetingsDB = storeProcedure.selectPastMeetings(ApplicationContext.Instance.LoggedUser.PID);
ApplicationContext.Instance.pastmeetingList = pastMeetingsDB;
Also nur mein Problem tritt auf, wenn parallel Aufruf, und die gedruckte Fehlercode ist: { "Objektverweis nicht auf eine Instanz eingestellt ein Objekt. "}
Wie kann ich lösen?
Was ist der Sinn dieses 'Try ... catch ... throw' neben dem Aufruf des Call-Stacks? –
der Punkt ist auf der storeProcedure.insertPastMeetings –
Task 2 scheint anzunehmen, dass bereits ApplicationContext.Instance.pastmeetingList gesetzt ist. Wenn dies nicht der Fall ist, scheint dies eine gültige Aktion zu sein - wenn Sie parallel laufen, kann task2 ausgelöst werden und nichts hat sich darauf eingestellt, wenn es beginnt .. Scheint vernünftig – BugFinder