Hallo,
Mein Programm lässt länger andauernde Aufgaben in einem neuem Thread ausführen.
Allerdings erscheint immer diese Fehlermeldung beim Debug:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
unzwar bei
C#-Quelltext
1:
| this.registryinstance.registryEventresult += new EventHandler<registryArgsresult>(registry_result_seitelistviewhinzufuegenuberpruefung); |
Einen neuen Eventhandler habe ich ja bereits mit:
C#-Quelltext
Leider weiß ich nicht ob das Objekt nicht NULL ist weil ich es ja neu erstellt habe.
Hier ist der Code von dem neuen Thread:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133:
| class ThreadClass { public string s_useragent; public string s_seitenname; public string s_url; public string s_uberpruefungen_gesammt; public string s_uberpruefungen_online; public string s_uberpruefungen_offline; public string s_uberpruefungen_auto1; public string s_uberpruefungen_auto2; public string s_uberpruefungen_auto3; public string s_uberpruefungen_auto4; public string s_uberpruefungen_auto5; public string s_uberpruefungen_auto6; public string s_uberpruefungen_manuell1; public string s_uberpruefungen_manuell2; public string s_uberpruefungen_manuell3; public string s_uberpruefungen_manuell4; public string s_uberpruefungen_manuell5; public string s_uberpruefungen_manuell6; public string s_uberpruefungen_nichtdrin1; public string s_uberpruefungen_nichtdrin2; public string s_uberpruefungen_nichtdrin3; public string s_uberpruefungen_nichtdrin4; public string s_uberpruefungen_nichtdrin5; public string s_uberpruefungen_nichtdrin6; public string s_fertiguberpruefen; public int i_seitenanzahl_uberpruefen; public int i_fehler_seite_uberpruefen; public int i_uberpruefungen_aktuelle_seite; public int wert1 = 0; public int wert2 = 0; public int ergebnis = 0; public string s_internet_check; public string s_titel; public string s_description; public string s_author; public string s_publisher; public string s_copyright; public string s_keywords; public string s_stylesheet; public string s_background; public string s_backgroundimage; public string s_arr; public delegate void berechnungFertig(int e); public event berechnungFertig ffertig;
private download downloadinstance { get; set; } private registry registryinstance { get; set; }
void download_result(object sender, downloadArgsresult e) { try { s_internet_check = e.s_internet_check; s_titel = e.s_titel; s_author = e.s_author; s_background = e.s_background; s_backgroundimage = e.s_backgroundimage; s_copyright = e.s_copyright; s_description = e.s_description; s_keywords = e.s_keywords; s_publisher = e.s_publisher; s_stylesheet = e.s_stylesheet; s_arr = e.s_arr; } catch { } }
void registry_result_seitelistviewhinzufuegenuberpruefung(object sender, registryArgsresult e) { try { if (e.s_job == "seiten_laden_listview_uberpruefen") { s_seitenname = e.s_seitenname; s_url = e.s_url; s_fertiguberpruefen = e.s_fertiguberpruefen; s_uberpruefungen_gesammt = e.s_uberpruefungen_gesammt; s_uberpruefungen_online = e.s_uberpruefungen_online; s_uberpruefungen_offline = e.s_uberpruefungen_offline; s_uberpruefungen_auto1 = e.s_uberpruefungen_auto1; s_uberpruefungen_auto2 = e.s_uberpruefungen_auto2; s_uberpruefungen_auto3 = e.s_uberpruefungen_auto3; s_uberpruefungen_auto4 = e.s_uberpruefungen_auto4; s_uberpruefungen_auto5 = e.s_uberpruefungen_auto5; s_uberpruefungen_auto6 = e.s_uberpruefungen_auto6; s_uberpruefungen_manuell1 = e.s_uberpruefungen_manuell1; s_uberpruefungen_manuell2 = e.s_uberpruefungen_manuell2; s_uberpruefungen_manuell3 = e.s_uberpruefungen_manuell3; s_uberpruefungen_manuell4 = e.s_uberpruefungen_manuell4; s_uberpruefungen_manuell5 = e.s_uberpruefungen_manuell5; s_uberpruefungen_manuell6 = e.s_uberpruefungen_manuell6; s_uberpruefungen_nichtdrin1 = e.s_uberpruefungen_nichtdrin1; s_uberpruefungen_nichtdrin2 = e.s_uberpruefungen_nichtdrin2; s_uberpruefungen_nichtdrin3 = e.s_uberpruefungen_nichtdrin3; s_uberpruefungen_nichtdrin4 = e.s_uberpruefungen_nichtdrin4; s_uberpruefungen_nichtdrin5 = e.s_uberpruefungen_nichtdrin5; s_uberpruefungen_nichtdrin6 = e.s_uberpruefungen_nichtdrin6; s_fertiguberpruefen = e.s_fertiguberpruefen; } } catch { } }
public void ausrechnen() { this.registryinstance.registryEventresult += new EventHandler<registryArgsresult>(registry_result_seitelistviewhinzufuegenuberpruefung); this.registryinstance.seiten_laden_listviewuberpruefen(i_uberpruefungen_aktuelle_seite); this.downloadinstance.downloadEventresult += new EventHandler<downloadArgsresult>(download_result); this.downloadinstance.download_seite_auswertung(s_url, s_useragent); this.ergebnis = this.wert1 + this.wert2; ffertig(ergebnis); } } |
Mit diesem Code rufe ich den neuen Thread auf:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| ThreadClass myTC = new ThreadClass(); myTC.wert1 = 122; myTC.wert2 = 77; myTC.ffertig += new ThreadClass.berechnungFertig(myTC_fertig); System.Threading.Thread myThread = new System.Threading.Thread(myTC.ausrechnen); myThread.Start(); |
Für jede Hilfe bin ich sehr dankbar.