2017-07-23 3 views
0

Ich arbeite an mehrsprachige C# Windows Forms-Anwendung. Ich benutze Sprachen wie Japanisch, Chinesisch, Thai und Koreanisch. Also lade ich Ressourcendateien wie Resources.ja-JP.resx, Resources.zn-CH.resx, Resources.th-TH.resx und Resources.ko-KR.resx.Ressourcen mit großen Bildern

Wir verwenden in unserem Projekt große Bilder, die in die entsprechenden Ressourcen geladen werden. Die Größe der Ressourcen-DLL beträgt also jeweils etwa 400 MB.

Ich versuche, die Anwendung im x86 Debug-Modus ausführen, aber ich bekomme "out of Memory Ausnahme" beim Ändern der Sprache. Ich habe viele Suchen durchgeführt, aber alle sagen, dass es an sehr großen DLLs liegt.

Hat jemand das gleiche Szenario konfrontiert. Lass es mich wissen, bitte.

+2

Setzen Sie keine Bitmaps, da diese sehr groß sind. Reduziere sie zuerst. Erstellen Sie kleine Bilder und Ressourcen und zeigen Sie, wo immer es nötig ist. Für den Fall, dass große HD-Bilder angezeigt werden müssen. Rendere sie von der Festplatte. Setze sie nicht in Dll, sondern setze ihren Pfad zum Rendern. Vergessen Sie nicht, auch zu entsorgen. – Ramankingdom

+0

Anrufliste FTW! –

+0

Danke für Ihren Vorschlag. –

Antwort

0

Sind Sie sicher, dass Sie aufgrund der Bilder die Ausnahme wegen nicht genügend Arbeitsspeicher haben? 400MB klingen für die heutigen Systeme nicht sehr groß. Entfernen Sie alle Bilder und prüfen Sie, ob das Problem weiterhin besteht.

Andernfalls, wie @Ramankingdom vorgeschlagen, verschieben Sie die Bilder aus den Ressourcen. Erstellen Sie einfach einen Ordner namens images mit Unterordnern für die einzelnen Sprachen. Auf diese Weise können Sie nur den Unterordner durch die aktuelle .NET-Kultur ersetzen und Sie sollten in Ordnung sein.

+0

"Nicht genügend Arbeitsspeicher" wird sehr oft von GDI + ausgelöst, wenn es sich um Bilder mit großen _Pixel-Dimensionen_ handelt. Selbst wenn Sie viel RAM haben. –

+0

Danke für Ihren Vorschlag. –

Verwandte Themen