Zum Inhalt springen

errox

Mitglieder
  • Gesamte Inhalte

    390
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von errox

  1. errox

    Arbeitsspeicher Freigeben

    Das heisst du findest meine Idee Schwachsinnig den Arbeitsspeicher von mir aus in meinem Programm freizugeben oder wie soll ich das sehen? Ich hab halt folgendes Problem: Ich arbeite mit C# .NET 3.5 (Compact Framework, ganz Wichtig) auf einem Gerät mit Gerade mal 51.11 MB RAM (Windows Mobile 6.5). Wenn Paralell Telefoniert wird, das Bluetooth an ist, der Media Player ebenfalls und andere Applikationen habe ich Gerade mal 2 MB Arbeitsspeicher zu verfügung. Mein größtes Problem ist: läuft meine Applikation flüssig und es ruft mich jemand an, werden alle Applikationen (von WM selbst) beendet damit das Telefonat entgegen genommen werden kann. Beispiel: Meine Applikation läuft, Windows Media Player. Es ruft mich jemand an. Ich merk das vorerst garnicht. Zuerst wird Entweder Windows Media Player oder meine Appliaktion beendet. Und ich möchte einfach dass meine Applikation weniger Arbeitsspeicher verbraucht damit sie erst garnicht beendet werden muss. Es ist nicht nur ein "Bauchgefühl" dass ich den Arbeitsspeicher freigebe, sondern eher ein muss damit die Applikation läuft. Das muss doch irgentwie gehen dass ich den RAM einer Variable oder einer Instanz einer Klasse freigeben kann ohne alles auf NULL zu setzen und dann den GC aufzurufen. By the Way: Was genau hat eig die Dispose() Methode auf sich? Im enddefekt (laut MSDN) ruft meine Dispose Methode in meiner Klasse die Dipose() Methoden der Instanzen auf: public void Dispose() { Dispose(true); // Use SupressFinalize in case a subclass // of this type implements a finalizer. GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { // If you need thread safety, use a lock around these // operations, as well as in your methods that use the resource. if (!_disposed) { if (disposing) { if (_resource != null) [B]_resource.Dispose();[/B] Console.WriteLine("Object disposed."); } // Indicate that the instance has been disposed. _resource = null; _disposed = true; } } Was genau passiert dann in dieser Instanz? Ich versteh das nicht so ganz. Alle rufen einfach nur Dispose auf und es Passiert nichts? Was mach ich wenn ich ein Int Array mit 1000 werten habe? Da gibt es kein Dispose.
  2. errox

    Arbeitsspeicher Freigeben

    Leider ein konkretes Problem. Auf meinem Handy läuft TouchFlo, Windows Media Player, etc. Der Media Player startet sich leider jedes mal Neu, wenn ich eine Form öffne. Desshalb brauch ich jedes kb an RAM.
  3. errox

    Arbeitsspeicher Freigeben

    Okey dann drück ich mich mal anders aus: Ich hab diverse Klassen (selbst geschrieben) und diverse normale Variablen (int, string) Und weil ich auf einem mobilgerät schaff und nur 2 MB freien Arbeitsspeicher hab, möchte ich jede Variable die ich nicht mehr Brauch freigeben. Das muss doch irgentwie gehen oder?
  4. Hallo. Gibt es in C# .NET (auch .NET CF) eine andere möglichkeit außer den GarbageCollector um Arbeitsspeicher freizugeben? Zur zeit sieht mein Code so aus: private void btnSave_Click(object sender, EventArgs e) { DataBase.Unit unit = new Unit(); ..... Working Code.... // Ram freigeben unit = null GC.Collect(); }
  5. errox

    .NET CF Recoding

    Funktioniert nicht mit .net CF. Das Problem ist: Ich muss die Dateien auf n Server laden. Das kostet Zeit
  6. errox

    .NET CF Recoding

    Auf nem Mobilgerät kann man nicht Convertieren Aufnehmen kann ich ja, aber das ist einfach zu groß.
  7. Danke für die Antwort. ich muss mich wohl auf die erste Möglichkeit ausweisen, weil nicht jede Klasse von .NET aus das Interface ISerializable implementiert. Was ich gerne machen will ist ein objekt an der einen Seite rein und an der anderen Seite raus. Richtig gut gekapselt halt Nicht speziell "SendDataTable" oder sonst was. Das Serializieren vom Objekt klappt ganz gut: public string SerializeObject(Object input) { System.Xml.Serialization.XmlSerializer xmls = new System.Xml.Serialization.XmlSerializer(input.GetType()); System.IO.TextWriter txt = new System.IO.StringWriter(); xmls.Serialize(txt, input); return txt.ToString(); } Das Problem ist das Deserializieren. Woher soll die andere Seite wissen was das ist? XmlSerializer ser = new XmlSerializer(typeof(Object)); System.IO.TextReader sjioj = new System.IO.StringReader(s); Object geladen = ser.Deserialize(sjioj); Gibt es dafür eine Lösung? Gruß errox
  8. errox

    .NET CF Recoding

    Hallo. Ich hab ein Windows Mobile Handy. Dort existiert Sprachrecorder. Dieser erstellt amr Dateien. Jetzt möchte ich gerne eine Anwendung erstellen ( für Windows MObile C# .NET CF 3.5 ) mit der Ich Sounds Aufnehmen kann und abspielen kann. Am besten sollte die erzeugte Datei auch unter normalen .NET ( auf PCs ) abspielbar sein. Bis jetzt hab ich folgendes Gefunden: Recording and Playing Sound with the Waveform Audio Interface. Klappt soweit ganz gut. Das Problem ist die größe ( 5 sekunden, 100 kb) Leider kann ich keinen Codec angeben damit die Größe kleiner wird. Am liebsten wäre mir eine "API" auf den Sprachrecoder, der vorinstalliert ist. 10 sekunden -> 17 Kb Weiss jemand, wie ich sowas entwickeln kann bzw. Die Bibliothek? DirectX Sound gibts ja leider nicht unter Windows MObile. Oder kann ich irgentwie mit der Libary von MSDN doch einen COdec angeben? Mein Ziel ist es Sounds aufzunehmen und abzuspielen auf einem Gerät, dessen Dateigröße nicht sooo groß sind. Am liebsten wie beim Sprachrecorder. Gruß errox
  9. Hallo. Ich möchte gerne eine gekapselte Version von einem TcpClient / TcpServer schreiben. Klappt soweit ganz Gut. Strings sende ich via Networkstream. Da Convertiere ich den String in ein bytearray und schick ihn los. Was ich gerne machen will ist ein Objekt zu senden ( z.B. eine Instanz von einer Form oder einem Control ) Ich hab mir überlegt ich wandel das Objekt in ein Bytearray um und sende es durch den NetworkStream. Geht aber nicht so einfach. Wie löst sowas eigentlich ein Webservice? Gruß errox
  10. Genau das mein ich Meine Aktuelle Netzwerkimplementation sieht so aus, dass der Server 3 Threads hat. Eine zum Senden der Nachrichten, zum Empfangen und für neue Benutzer, die sich "Anmelden". Client 2 Threads: Senden und Empfangen. Beim Thread beim Server der neue Clients Empfängt (TcpClient AcceptTcpClient () ) anhält. Ich weiss nicht was er da Intern macht aber er macht erst weiter wenn einer Kommt. Das muss doch auch beim Empfangen von Daten gehen ohne dass ich von mir aus einen Thread habe der Assynchron überprüft ob Daten da sind ("Sind daten da, sind daten da") Sondern ein anderes Verfahren dass den Thread anhält bzw erst weiter macht, wenn Daten da sind. Hoffentlich versteht ihr worauf ich hinaus will. Ich hab ja auch keine Methode geschrieben "Neuer client? Neuer client, neuer client...." Sondern. "Ich wart einfach mal bis ein neuer client sich verbinden will" Und das macht der Intern bestimmt anders als eine Endlosschleife zu haben um zu kontrollieren "Neuer client, ..." Ich weiss nicht ob man das bei den Sockets vergleicht: Aber wenn ich Post bekomme, weiss ich es daran dass sich einmal mein Brief schlitzt geöffnet hat damit die Post rein kommt, nicht daran dass ich am anderen Ende des "Briefkastens" darauf warte bis ein Brief drin ist. Gruß
  11. Hallo. Ich steuere von einem Mobilgerät einen JSON Webservice an, der mit Session Cookies arbeitet. Leider gibt es in dem CF keinen "CookieContainer". Zur zeit lese ich so den Inhalt aus: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // "Antwort" Laden WebResponse response = request.GetResponse(); // Antwort Auslesen StreamReader sr = new StreamReader(response.GetResponseStream()); string strResponse = sr.ReadToEnd(); sr.Close(); // Antwort zurückgeben return strResponse; Leider erzeug ich immer eine neue Instanz von meinem "Response". Und wenn ich ein Zweites mal den Response von meinem Request ermitteln will request.GetResponse(); erhalte ich eine ProtocolViolationException: Wie mache ich es so, dass ich meine Session Cookies behalte? Bzw meinetwegen neu Setze? Wie mache ich es bei "Normalen" Cookies? Gruß
  12. Ja aber woher will der Client wissen dass neue Nachrichten da sind? Wenn das wirklich nur ein assynchroner Vorgang durch einen Thread ist der im Hintergrund guckt ob Daten da sind hab ich das bereits implementiert. Wieso sollte der Client fragen "Hab ich neue Daten?". Der ließt doch eh das, was im Buffer steht. (C# .NET, ich weiss nicht wie es in anderen Programmiersprachen ist) Weil ich hab mir eine andere Algorythmik vorgestellt die keinen Traffic verursacht.
  13. Hallo. Ich habe es bereits so laufen. Das läuft soweit ganz gut. Ich dachte aber, dass es eine andere Technologie dahinter steckt, die "anders" funktioniert. Weil vergleichbar macht ja der Client nichts anderes als (Hab ich neue Daten? (z.B. e-Mails), Hab ich neue Daten?, Hab ich neue Daten?, ...) Blos halt in einem kürzerem Zeitintervall (1 ms nicht 0, damit die CPU nicht überlastet wird) Wenn der PUSH Service wirklich so funktioniert, dann hab ich es ja bereits auch. Ich kontrollier in meiner Schleife blos, ob neue Daten da sind (NetStream.DataAvailable -> C#) Ich dachte dahinter steckt eine spezielle Technologie dahinter. Aber was solls (: Trozdem danke! Gruß errox
  14. Hallo. Zur zeit arbeite ich Produktiv mit einem TomTom Gerät (TomTom Work, Webfleet wenn es jemanden was sagt) Jedenfalls bin ich erstaunt wie man Nachrichten übermitteln kann. Schneller als SMS. In einem Portal Drückt man auf Senden, max. 1 Sekunde dauert es bis die Nachricht am TomTom Gerät ankommt. Diese Technik will ich auch für eine private Chatanwendung verwenden. Ich habe bereits erfahrung mit der Netzwerkprogrammierung (Sockets, TCP/IP Verbindungen, Datenaustauschen). Im Internet steht viel von einem PUSH Service, dass der Server OHNE Anfrage vom Client die Daten direkt erhält. Meine aktuelle Programmierlogik ist vergleichbar mit einem e-Mail Hoster. In einem Intervall von n-Sekunden wird überprüft, ob sich Daten im Buffer befinden. Wenn ja, werden diese Ausgelesen. Vergleich: Ich überprüfe alle n-Sekunden / Minuten ob ich eine neue e-Mail habe. Leider habe ich zur Zeit keinen Ansatz, wie ich so einen PUSH Service Programmieren kann, woher soll der Wissen dass die Daten da sind oder welche gekommen sind ohne zu Überprüfen? Oder ist das alles nur ein "Mythos"? Ich weiss leider nicht wie das die SMS macht, ein Anruf oder der TomTom Webservice. Ein Handy oder ein Telefon Kontrolliert sicherlich nicht jede Sekunde "Ruft mich jemand an? Ja? -> Telefon Klingeln lassen" Wenn mir jemand einen Ansatz geben kann, wäre das Super. Seid einigen Wochen mache ich mir gedanken wie man so etwas Umsetzen kann. Danke! P.S. Ich programmiere in C# .NET Gruß errox
  15. Hallo ich hab eine Frage: Ich würde gern von einem Mobilgerät aus einen Webservice ansteuern. Der Quellcode der Anzeigten Webseite wäre völlig ausreichend. GET Parameter kann ich dann einfach in der zu Aufrufenden URL übergeben, aber wie Übergebe ich POST Parameter? Und wie erhalte ich generell am Schnellsten (auf einem Handy) den Quellcode einer Webseite? Gruß
  16. Hallo. Ich habe ein Problem mit der ASPX Dropdown list: In meiner PageOnload methode, füll ich ein Dropdownitem: foreach (string prices in _prices) { ddlPrice.Items.Add(new ListItem(prices, prices)); } Das Item wird gefüllt. Jedoch wenn ich auf meinen Button Klicke, und ermitteln will welches ich ausgewählt hab, ist der wert "". Wieso? [B]button_click[/B]: Session["X"] = ddlPrice.SelectedItem.Text; Außerdem ist es nicht so wie bei den Textboxen, dass der Wert drin bleibt bei einem Klick auf den Button, es wird immer wieder der Erste ausgewählt. Wie kann ich es machen, dass ich die Dropdownliste in meinem Code befülle, und dass ich bei dem Klick auf dem button den tatsächlichen Wert erhalte? Gruß
  17. Hallo. Ich hab mal mit ASPX angefangen. C# kann ich und PHP auch. In meiner Index1.aspx hab ich ein Control und ein Button: <form id="form1" runat="server" method="post" action="Index2.aspx"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" /> </form> Er ruft die Index2.aspx auch auf. Blos wie krieg ich jetzt über POST in meiner index2.aspx das Control TextBox1 aus Index1.aspx? (mit gefüllten werten usw) ich habs damit versucht Index2.aspx Code: protected void Page_Load(object sender, EventArgs e) { string x = (PreviousPage.FindControl("TextBox1") as TextBox).Text; } Klappt ned so ganz. Über GET will ich nicht arbeiten. Gibts da ne lösung? Gruß
  18. Yeap, VS 2008 Pro. Früher hab ich ja ganz "normal" entwickelt. Seid ich meine CPU ausgewechselt hab ist die Toolbox nicht mehr so. Ich glaub aber nciht dass es daran liegt. Zur Zeit Arbeite ich unter einer VM mit VS 2008 und dem WM SDK. Etwas Nervig aber da funktionierts.
  19. Hallo. Ich habe ein Problem bei WindowsMobile Projekten. Alle Controls in meiner Toolbox sind grau. Ich habe bereits die Toolbox mehrmals zurückgesetzt, ich lasse mir alle anzeigen, Visual Studio 2008 mehrmals neu installiert und das WM 6 SDK auch. Nichts Hilft. Bei Normalen WindowsForms Anwendungen nicht, nur bei Windows Mobile Projekten (intiligentes Gerät) Kennt einer das Problem? Gruß
  20. errox

    Startproblem

    Hallo. Ich habe ein Problem mit meinem Rechner: und zwar startet er nur ab und zu, zeigt dann mein Mainboardstartschirm (das Diamond logo vom mainboard) und versucht zu booten. Spätestens, wenn windows starten will, friert er ein. Nach einem neustart geht garnichts. Erst wenn die Stromquelle für eine stunde entzogen wird. und selbst dann friert der rechner bei dem "Diamond" logo oder beim laden von windows ein. Mein PC ist 4 Jahre alt. Er kann doch nicht schon den geist aufgegeben haben oder? Ein Softwareproblem ist es glaub ich nicht, weil sonst würde der beim mainboard logo doch auch nicht hängen. Mainboard wurde schon resettet. Ich will keinen neuen pc kaufen, an ihm hängen zu viele erinnerungen. Liebe Grüße errox
  21. Nach WinAPI funktionen hab ich bereits gegoogelt. Ich hab nix gefunden, was mir weiterhelfen könnte. Was ja auch mein ziel sein sollte: Ein "normaler" Benutzer sollte einen Administrator anlegen können. Ich glaub das wird bei einer WinAPI funktion abgefangen (ich würde es trozdem versuchen)
  22. Hallo. Ich möchte gerne eine Anwendung schreiben, mit der jeder die Benutzerkonten verwalten kann. Die Erfahrung in C# oder C++ habe ich. Was mir fehlt ist der Pfad in der Registry oder auf die Datei, wo die Benutzerkonten gespeichert werden. Weiss vielleicht jemand, wo in der Registry die Benutzer gespeichert werden? Vielen Dank. Liebe Grüße errox
  23. Guten Abend meine Liebe FI-Kollegen, zur Zeit arbeite ich an einer Kapselung von TCPClient (Netzwerkprogrammierung) Die Server Klasse beinhaltet eine Liste mit allen TCPConnections als TCPClient objekt, die mit dem Server verbunden sind: List<TCPClient> _clients; Ebenfalls verfüge ich über die Methode Send(string message), die an alle TCPClients die Nachricht über eine ForEach sendet: foreach(TCPClient client in _clients) { Send("test",client); } Sprich ich schick jedem einzelnen die Nachricht. So muss es ja sein. Es gibt auch methoden, wo ich die Nachricht an einen bestimmten Client schicke, aber das ist nicht das Thema. Send(string msg, TCPClient targetClient) Schmeißt eine Exception, wenn der Zielclient nicht erreichbar ist (beabsichtigt). Sprich ich überprüfe intern ob die Message Gesendet wurde oder nicht. Wenn nicht, wird der Client von der Liste geschmissen. Jedoch hab ich ein Problem, dass das nicht geht. Ich erhalte eine Exception wenn ich in der Foreach ein Objekt aus der Liste mit Remove() entferne. Mein Lösungsansatz war es die foreach zu verlassen und einen Wert zwischenzuspeichern, dass die Foreach wieder betreten werden soll. Jedoch scheitert es daran, dass dann die, die am anfang in der Liste stehen, die Nachricht nochmal erhalten. Und zwar so oft, wie "schwarze schafe" vorhanden sind. Gibt es eine Lösung mit Remove(), dass ich es in der foreach ausführen kann ohne dass diese Exception geschmissen wird? Hoffentlich versteht ihr mein Problem Gruß errox
  24. errox

    ListView ASP.net

    Hallo. Wie ist es möglich ein "echtes" ListView in einer ASP.net Webseite einzufügen? So, wie es hier abgebildet ist: Das ListView Control von ASP.net direkt ist nicht wirklich dazu da, die Daten mit Spalten / Zeilen anzuzeigen, sondern eher eine Auflistung untereinander. Ich such aber eher nach dem "klassischem", wie man es aus einer Windows Anwendung kennt. Gruß
  25. Ok ich glaube mal ich erkläre das mal genauer: Ich hab eine Klasse die eine Netzwerkverbindung einfacher Verwaltet. In der Klasse wird ein Thread gestartet, der im Hintergrund läuft und Daten empfängt. Werden Daten empfangen, wird ein Event gefeuert. (_listenerThread) Ebenfalls wird in einem Intervall die Verbindung durch ein Send() geprüft. Wenn der Zielserver nicht erreichbar ist, wird eine Exception geschmissen. Diese Exception hält den _listenerThread an. Nehmen wir an, die Exception wird durch ein catch {} gefangen, dann läuft der _listenerThread weiter, obwohl der Server offline ist. Jetzt ist mir aber etwas Besseres aufgefallen Im Catch Block soll einfach ein Disconnect() erfolgen, er hält auch den Thread an. Trozdem vielen Dank für die Hilfe Liebe Grüße errox

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...