Afaik nein. Stell die Frage mal im WinAPI Forum. Mit dem Ergebnis (wenn es geht) kann man dann versuchen eine Lösung für .Net zu erarbeiten. (PInvoke etc.)
Ja und Nein! Du hast recht, aber ich habe eine Componenten Factory die Componenten werden über Methoden erzeugt, dies würde ich gern überwachen..die aufruf würde ich genr für mich inter protokolieren ohne exteren Profiler.
Ist den sowas grundsätzlich möglich im code zu laufzeit sowas zu machen??
Naja ok ein kleines WinAPI//C -> GUI hast ja jetzt.. jetzt kannst ein bald ja schon mal eine Pixel (Ball) malen an irgend einer X/Y koordinate im fenster^^ Da rein zeichen Stichwort: WM_PAINT SetPixel
Über NAT solltest Du Dir keine Sorgen machen, das sind Adressierungs- / Routing-Angelegenheiten. Dafür sind die Schichten unter TCP zuständig.
Als Binding auf keinen Fall WS*/HTTP*. Der ganze Overhead muss da verwaltet werden. TCP sollte performanteste sein.
Für die Sicherheit: SSL. Schau mal hier http://msdn.microsoft.com/en-us/library/ms731925.aspx . Sonst google halt mal. Stichwörter WCF Security, SSL, X509
Die MSDN ist Dein Freund, man findet's dort nur nicht immer auf Anhieb.
Auch wenn dein Projekt nicht so groß ist wie du in einem Post bereits gesagt hast, gewöhn es dir aber bitte nicht an Variablen mit Umlauten zu bestücken, es KANN gut gehen, aber vielleicht fällst du damit mal woanders auf die Nase, ist nur ein gutgemeinter Rat und mal ernsthaft, die zwei extra Buchstaben werden dich nicht umbringen, besonders nicht wenn dir Intellisense dabei hilft deine Variablen wiederzufinden :p
Hallo Jungs,
ich schon wieder;)
Ich hab noch 2 Problem bei denen ich googletechnisch auch net weiter komme, also
1:
Ich verwende unter WPF ein UserControl als Pseudo Dialog, welches angezeigt wird (asyncron damit der hintergrund weiterhin arbeitet). Der Fehler kommt in meiner DoEvents Funktion, wleche mir abstürtzt:
private void DoEvents()
{
this.Dispatcher.Invoke(
DispatcherPriority.Background,
new ThreadStart(delegate { }));
}
Exeption:
Dieser Vorgang kann bei deaktivierter Verteilerverarbeitung nicht ausgeführt werden.
2:
Ich lass meine c# Anwendung laufen! Sie fungiert als Server und hat diverse Access Datenbanke offen und schreibt sonstige logfiles etc. ihn ihr programm verzeichniss! So, und wenn ich bspw. jetzt irgendwo unabhängig meinem Programm verzeichniss/dateien was im explorer machen bspw. dateien kopieren, lösche etc. stürtzt mein Server ab.. woran könnte das den liegen versteht das nich? Hat das dateisystem ein problem?
Ich hab mehrere Access Datenbanken exklusiv offen udn schreibe da rein, könnte das das problem sein, das ich ständig Files offen habe? ne odeR?
loks schrieb:
Th69 schrieb:
das ist völlig egal, ob 2.0f oder (float)2, da das der Compiler automatisch umwandelt... (du kannst auch (float)(1+1) schreiben)
Dir ist schon bewusst das int nach float kein simpler cast ist sondern eine aufwendige Umrechnung?
btw, wenn man explizit den cast angeben muß dann ist das per Definition keine automatische Umwandlung.
Du hast schon Recht, wenn du sagst, dass die Konvertierung nicht trivial ist. Allerdings ist der C#-Compiler inzwischen schlau genug und optimiert solche Schnitzer des Programmierers einfach weg.
cap_Chap schrieb:
hajb schrieb:
Monitore? Nee, böse.
Das Monitoring war in diesem Fall nur dazu gedacht den Abbruchteil und den Aufruf von DoSearch()
zu synchronisieren. Soll heißen dass erst abgebrochen werden kann, wenn die Suche vollständig läuft, was ja auch Sinn macht.
Ohne die lock() Anweisung könnte es theoretisch passieren, dass aus einer Liste mit mehreren Domains nur für einen
Teil die AsyncSearch Klasse instanziert wird und somit auch nur dieser Teil gestoppt werden kann.
Ich meinte nicht, dass locks böse sind. Ich meinte diese hier: http://msdn.microsoft.com/en-us/library/system.threading.monitor(VS.71).aspx. Man muss sehr aufpassen, dass man sich keinen Deadlock einfängt. Deswegen pauschal erstmal böse, aber es gibt Fälle wo man's braucht.
cap_Chap schrieb:
Ich muss dir allerdings Recht geben, wenn du sagst dass das unsauber ist, mir gefällt das auch noch nicht so ganz.
hajb schrieb:
Besser wäre sowas wie ein BackgrundWorker, dem man sagen kann: Start, stop. Und dann immer genau das passiert.
Selbst wenn ich hier mit der Klasse BackgroundWorker arbeiten würde, löst das immer nocht nicht das am Anfang beschriebene Problem.
Oder wie sollte BackgroundWorker hier deiner Meinung nach zum Einsatz kommen?
DoSearch mit Hilfe von BackgroundWorker starten und stoppen oder nur die async. Suchläufe?
In jedem Fall muss eine Liste mit BackgroundWorker-Objecten verwaltet und für jeden
BackgroundWorker CancelAsync() aufgerufen werden, was aber im Vergleich zum aktuellen Code
keine Änderung in Bezug auf die button_click Events herbeiführt.
Sorry, ich meinte nicht _den_ BackgroundWorker aus System.ComponentModel, sondern eher als Konzept. Er soll die Arbeit machen. Die GUI braucht sich nicht zu kümmern wie. Wenn sie "Start" sagt, dann startet er, bei "Stop" hört er auf.
Ja, und genau Punkt 4 ist mein Problem, ich weiss nicht wie ich das anstellen soll... mein gedanke war jetzt kommandostring verlegen in Funktionsname und den Parametern und dann mit ner switch die passende aufrufen... rein Theoretisch müsste das doch klappen oder nicht?
Warum erzeugst du eigentlich von Hand die Insert-, Update und Delete-Commands?
Standardmäßig reicht die Übergabe des Select-Commands und der DB-Provider erzeugt daraus dann intern die passenden anderen Commands.
Hinweis :
Ich erwähnte oben die Meldung "Zu Wenig Speicher ..."
Diese erschien ebenfalls bei den folgenden Projekten.
Man muss dann erst einmal unter
Extras -> Geräteemulator-Manager
Gerät aussuchen
aktionen -> Speicherzustand löschen
Ich haben dafür 2 Wochen gebraucht um dahinter zu kommen
Gruß Linus
Hallo zusammen,
ich habe nun mal wieder ein neues Problem. Habe mich etwas vermehrt mit Datenbanken befasst und auf Wunsch ein kleines Programm erstellt mit welchem man am PC Musik auf SD-Karten sortiert auflisten kann sowie eine mobile Anwendung welche die XML-Datei (aus einem DataSet) wieder in ein DataSet einliest. Ich habe eine funktionierende Version. DOch ich wollte dass die Daten nach dem einlesen in einer MS SQL Server Mobile-Datenbank gespeichert werden, und habe zum ersten Mal eine SQL-Datenbankdatei erstellt (denke erfolgreich?). Zuerst klappte das einlesen des XML auch aber plötzlich, und ich kann mich an keine Änderungen welche damit im Zusammenhang stehen erinnern, funktionierte es nicht mehr. Ich finde nicht heraus wieso, es erscheint keine Meldung, keine Ausnahme aber sind auch keine Daten sichtbar!
Da es schwierig ist mit Quellcode zu zeigen und die Struktur der .sdf eventuell wichtig ist habe ich einen Link zu einer ZIP-Datei mit dem Projekt hier:
http://rebenstudio-it.ch/SDKartenDB.zip
Wenn jemand Zeit hätte und reinschauen könnte wäre super flott, dann könnte ich mal vermehrt mit Datenbanken üben
Die XML-Struktur (eine Testdatei sollte beiliegen) sieht so aus:
<?xml version="1.0" standalone="yes"?>
<xs:schema id="SDKarten" targetNamespace="http://tempuri.org/SDKarten.xsd" xmlns:mstns="http://tempuri.org/SDKarten.xsd" xmlns="http://tempuri.org/SDKarten.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="SDKarten" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="DataTable1">
<xs:complexType>
<xs:sequence>
<xs:element name="Interpret" type="xs:string" minOccurs="0" />
<xs:element name="Album" type="xs:string" minOccurs="0" />
<xs:element name="Karte" type="xs:string" minOccurs="0" />
<xs:element name="Nummer" msdata:AutoIncrement="true" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1">
<xs:selector xpath=".//mstns:DataTable1" />
<xs:field xpath="mstns:Nummer" />
</xs:unique>
</xs:element>
</xs:schema>
Vielen vielen Dank!!