Zerstoerer schrieb:
Hallo c# Community,
nehmen wir an ich instanziiere ein Objekt eine X-Belibiegen Klasse welche IDisosable implementiert.
Die Dispose Methode ruft
GC.SuppressFinalize(this);
"
So, nun is der GC informiert, das Objekt wenn die Ziet da is zu löschen.
aber ich könnte ja immer noch auf variablen bzw. referenze des Objekt zugreifen, weil es ja nich null ist.
Das ganze is dann wohl nich mehr deterministisch???
hier mal der Code meine Disposable Pattern:
Es gibt zwei Situationen wann Dispose aufgerufen wird: Entweder automatisch von der GC wenn Sie die Objekte aufräumt oder manuell vom Entwickler wenn er das Objekt nicht mehr braucht.
Im ersten Fall kannst Du auf das Objekt nicht mehr zugreifen weil dieser nur eintreten kann nachdem keine Referenzen mehr vorhanden sind.
Im zweiten Fall ist es ein Programmfehler des Entwicklers wenn er ein Objekt manuell Disposed und danach weiter darauf zugreift.
Dann wird das Event in den selben Abständen gesendet wie die Daten bisher geholt werden
Nur mit dem unterschied das das Event nicht gesendet wird wenn nichts da ist
Aber mal ehrlich, ich halte es für deutlich sauberer wenn man Bescheid bekommt wenn Daten rein kamen statt in regelmäßigen Abständen danach zu fragen.
Bei der ersten Post (Variante) brauch ich ein fenster, um über die entsprechende Winapi Funktion an die "WinProc" zu kommen:
[PermissionSet(
SecurityAction.Demand,
Name = "FullTrust")]
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DEVICECHANGE)
{
var id = m.WParam.ToInt32();
if (id == DBT_DEVICEARRIVAL)
{
OnUsbDeviceArrived("DBT_DEVICEARRIVAL");
}
else if (id == DBT_DEVICEREMOVECOMPLETE)
{
OnDeviceRemoved("DBT_DEVICEREMOVECOMPLETE");
}
}
base.WndProc(ref m);
}
und über WMI .. hmm.. naja is auch net schön...
spacken schrieb:
omg setz den pc neu auf
genau
davon abgesehen halte ich das hier für rumgetrolle.
vielleicht auch die ausrede vom nächsten script kiddy wo mächtig tolles hack-tool pr0gg3rn will, dafür, warum es solche dinge fragt.
Hallo, also ich will mirn IRC Client schreiben, dazu benutz ich die samrtIRC4net API. Um das alles n bissl zu verstehen hab ich einfach mal ne Form Applikation gemacht und probiert aufn Server zu verbinden und dann automatisch n Channel zu joinen. Nur macht mir jetzt Listen() probleme, ich versteh nicht ganz was der Entwickler damit gemeint hat. Weil mit Listen() geht es aber die Form pop nicht auf und ohne gehts ned aber die Form ist da. Hoffe jemand kann Helfen.
Hier die Erklärung zu Listen() und ListenOnce():
// here we tell the IRC API to go into a receive mode, all events
// will be triggered by _this_ thread (main thread in this case)
// Listen() blocks by default, you can also use ListenOnce() if you
// need that does one IRC operation and then returns, so you need then
// an own loop
irc.Listen();
Hier sein Beispiel: http://www.pastebin.com/m54384789
Hier mein Versuch: http://www.pastebin.com/m20f7a4b9
Hi,
in einem project wurde eine gac dll geschrieben, diese soll aber in unmanged code genutzt werden.
Ein Workaround über Marshall Callbacks würde ich gerne vermeiden und der regasm export bringt mir nicht alle methoden/klassen mit.
Deshalb ist die frage ob es eine möglichkeit gibt im source der dll den export als COM der dll zu ermöglichen.
Seid gegrüßt
Hallo,
die Option der Zielplattform kann Du unter
"Extras/Optionen/Projekte-und Projektmappen/Erweiterte Buildkonfigurationen anzeigen"
aktivieren und im Anschluß über die GUI konfigurieren.
Gruß
foo
in page_load gibts abfrage ob es postback ist oder nicht - also die variable ist ein einziges mal zu anfang initialisiert. Dann bei DropDownList onSelectedIntexChanged wird dieser variable ein neues wert zugewiesen. Die variable ist shared damit alle funktionen auf die gleiche variable zugreifen können.
nun 2 onclick ereignise - im ersten fall funktioniert alles ( unabhängig von zeitpunkt wann ich es mache ) und im zweiten Fall ist der variablenwert immer so wie es initialisert wurde ( 1 mal beim ersten Laden ) und bleibt auch so ( im ersten fall wird genau die gleiche variable verwendet - die ist ja shared - hat aber trotzdem einen anderen wert )
Und ich überlege - wie ist es möglich?
Du kannst ganz einfach "command" eigenschaft von button ausnutzen ( muss natürlich bei der erstellung erst zuweisen )
http://msdn.microsoft.com/de-de/library/system.web.ui.webcontrols.button.command.aspx
volkard schrieb:
i zum Attribut machen.
Die Schleife gehe nur über eine Seite.
int dingeAufDieserSeite=0;
while( i < dataGridView2.RowCount){
if(dingeAufDieserSeite==9){//paßt nix mehr
e.hasMorePages=true;
return!;
}
e.Graphics.MaleRum
++i;
++dingeAufDieserSeite;
}
Hm eigentlich logisch.
Danke klappt jetzt