2010-12-16 4 views
1

Ich benutze Scintilla mit dem .NET-Wrapper namens Scintilla.NET. Beim Erstellen einer Instanz davon, d.h.Scintilla.NET langsam laden

Dim c As New ScintillaNet.Scintilla 
    Me.Controls.Add(c) 

dauert es fast eine komplette Sekunde, um das erste Mal zu laden. Zu anderen Zeiten sind es ca. 150 ms. Tatsächlich ist dies in meiner Situation als Laden von z.B. 10 Dateien auf einmal dauert fast zwei Sekunden.

Stimmt es, dass Scintilla (oder Scintilla.NET) langsam ist, oder mache ich etwas falsch?

+0

Ich bin nicht so vertraut mit Scintilla, aber vielleicht ist es möglich, nicht die 10 Dateien auf einmal zu öffnen, da sie wahrscheinlich sowieso nicht auf einmal sichtbar wären (Ich denke, es gibt irgendwo eine Tabbed-Schnittstelle?) , laden Sie sie aber bei Bedarf (dh wenn sich die aktive Registerkarte zu derjenigen ändert, die dieses Dokument darstellt). Das habe ich kürzlich in einer meiner Apps gemacht und bin an einer sehr flüssigen Oberfläche angelangt, die ihre Daten 'träge' lädt. Natürlich verringert das Bereitstellen eines "Lade" -Indikators auch die wahrgenommene Zeit, selbst wenn die tatsächlichen ms gleich oder sogar größer sind. –

+0

Es ist in der Tat ein Tabbed-Editor. Ich bin nicht sehr scharf auf das, was Sie faules Laden nennen, aber vielleicht ist es eine interessante Lösung, da Sie dann die Ladezeit über einen längeren Zeitraum statt zwei Sekunden auf einmal verteilen. – pimvdb

Antwort

1

Ich würde nicht sagen, dass Scintilla langsam ist. Wenn nur langsam das erste Mal das Steuerelement erstellt wird, kann dies daran liegen, dass die Scintilla.dll dann geladen wird, und die 1 Sekunde, die Sie erleben, könnte die Zeit sein, die das System benötigt, um die DLL zu laden.

Wenn dies der Fall ist, schlage ich vor, Sie laden die DLL (durch Erstellen eines Dummy-Steuerelements) beim Start Ihrer Anwendung (zum Beispiel auf dem Begrüßungsbildschirm) - wenn dies in Ihrem Szenario akzeptabel ist.

+0

Tatsächlich mache ich das schon. Dies behebt das erstmalige Laden, aber alle anderen Instanzen verursachen eine Standzeit von ~ 150ms. Wenn ich also mehrere Steuerelemente auf einmal anlege, hängt meine Anwendung ziemlich lange. – pimvdb

+0

In diesem Fall könnte 150 ms die Zeit sein, die benötigt wird, um das Steuerelement zu instanziieren, so dass Sie in diesem Fall nicht viel zu optimieren haben. –

Verwandte Themen