• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: tak to ale zvrtali ty co delali ten kus, ne? vzdyt tohle se da ve winforms udelat docela slusne ... a hlavne bez exploreru.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: to mi rekni co v tom event viewwer a task scheduleru tak silene zvorali. vzdyt to neni nic extra slozityho.
    URZA
    URZA --- ---
    JACHYMKO: Njn.. je to takove trochu smutne... podle Tebe jaky vyhled do budoucna WPF ma? Bude to zit jen proto ze je to prilis velke a udelal to Microsoft, ale nebude to mit zadny novy podstatny aktivni vyvoj? Nasezeni v bussinessu?
    NECROMAN
    NECROMAN --- ---
    Novinky v .NET 4.5.1 a novinky pro vyvojare ve Windows 8.1 SDK
    Announcing the .NET Framework 4.5.1 Preview - .NET Blog - Site Home - MSDN Blogs
    http://blogs.msdn.com/b/dotnet/archive/2013/06/26/announcing-the-net-framework-4-5-1-preview.aspx
    Windows 8.1 Product Guide for Developers
    http://msdn.microsoft.com/en-US/windows/apps/bg184615
    A odkazy ke stazeni VS2013 preview
    2013 Preview Downloads | Microsoft Visual Studio 2012
    http://www.microsoft.com/visualstudio/eng/2013-downloads
    NECROMAN
    NECROMAN --- ---
    Windows 8.1 Preview - dostupny ke stazeni
    Download Windows 8.1 Preview - Microsoft Windows
    http://windows.microsoft.com/cs-cz/windows-8/download-preview
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: ja se jim po svejch zkusenostech ani moc nedivim :).
    ale napsani si vlastniho UI frameworku bych u zakaznika bohuzel neobhajil, i kdyz by me to bavilo.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Jak byla ta pisnicka .... bylo tam "to vime, to zname" :D.
    Jo, taky jsem na to narazil. Na druhou stranu, je tam takovy stesti v nestesti - ty view jsou tak tlusty, ze si toho memoryleaku jde po chvili pouzivani, lze nevsimnout jen velmi tezko.

    Ja si prave udelal odvozenou tridu z UserControl a ta pri Unload ten DataContext vycisti.

    Fakt nechapu jak po sedmi letech, co to dali do releasu, se to muze chovat porad jeste takhle.
    NECROMAN
    NECROMAN --- ---
    Rada pro vsechny, kteri pisou UI v XAMLu a pouzivaji Triggery, Behaviors a podobne attached property, jejichz hodnoty nastavujete databindingem - zpusobuje to pekne memory leaky - opoustena stranka neni garbage collectnuta.
    Minimalne bych doporucoval pri opousteni stranky nastavovat DataContext, Content a Resources na null.

    Samotnou kapitolou je potom leakovani WebView/WebBrowser komponent a samotnych Image/ImageSource, a jak se nam take podarilo zjistit, tak i nativnich komponent jako LongListSelector/Pivot/Panorama ve WP8, pokud se jako ItemsSource pouzije bindovana kolekce.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Plus se neda pouzit na cokoliv, co ma navratovou hodnotu. Coz je logicky, protoze by se tim mohl zasadnim zpusobem narusit kompilovana sekvene prikazu.
    NECROMAN
    NECROMAN --- ---
    Zajimave zjisteni z dneska - [Conditional("DEBUG")] nelze pouzit na konstruktorech, destruktorech, operatorech a implicitnich implementaci interfacu.
    Stejne tak prazdny destruktor ve tride neni kompilatorem odstranen, ale je volan a udajne to snizuje vykon...
    SLUPKA
    SLUPKA --- ---
    Tak víc popiš o co jde, z toho co jsi napsal nejde moc nic poznat, takže ani určit, co bude nejlepší :))
    MAIMONIDES
    MAIMONIDES --- ---
    NECROMAN, SAJAGI: Ty dvojice přicházejí jako síťové požadavky, na které je nutný odeslat odpověď, chodí nahodile.
    SAJAGI
    SAJAGI --- ---
    MAIMONIDES: Nevím přesně kontext, ale pokud to chceš jednoduše, tak dvojitý for cyklus na vybrání dvojic a zpracování přes AsParallel()? Nebo to neparalelizovat vůbec, protože těch operací není až tolik.
    NECROMAN
    NECROMAN --- ---
    MAIMONIDES: nastudoval bych si toto - bud lze bud pouzit klasicke async Tasky a cekat na ne pomoci await Task.WhenAll(tasky)
    Nebo pouzit primo Dataflow library, ktera podporuje i celkem slozite scenare.
    Task Parallel Library (TPL)
    http://msdn.microsoft.com/en-us/library/dd460717.aspx
    MAIMONIDES
    MAIMONIDES --- ---
    Prosím poraďte. Mám soubor několika set instancí jedné třídy a hledám nejvhodnější způsob paralizace interakcí dvojic těchhle instancí. Může docházet i ke kolizím, ale interakce je celkem jednoduchá, pár desítek celočíselných operací.
    Jaký způsob paralelizace mám v c# použít. K dispozici je asi milion způsobů a nejsem si jistej kterej je na tenhle druh problému nejlepší.
    TOOMIX
    TOOMIX --- ---
    MORMEGIL: s těma rekurzema jsem to našel všude na netu, ale jak koukám na Tvoje řešení, tak je to fakt jednoduchý, a já se tu s tím seru půl dne. Díky moc ;)
    MORMEGIL
    MORMEGIL --- ---
    TOOMIX: Co to je za příšernou podivnou konstrukci?? K čemu se tam používá ten list (a proč si myslíš, že se tam někde něco filtruje podle typu controlu)? Proč se v cyklu a rekurzivní funkci furt dokola dělá cbJazyky.SelectedItem.ToString() == "English" a vyrábí se resource manager? Proč ne prostě něco jako (nástřel z první):
    private void ChangeLanguage(Control container, ComponentResourceManager resourceManager, CultureInfo culture)
    {
    	foreach (Control c in container.Controls)
    	{
    		if (c is Label || c is GroupBox || c is DevExpress.XtraTab.XtraTabPage || c is TextBox || c is System.Windows.Forms.ToolStripMenuItem)
    		{
    			resourceManager.ApplyResources(c, c.Name, culture);
    		}
    
    		if (c.Controls.Count > 0) ChangeLanguage(c, resourceManager, culture);
    	}
    }
    
    private void cbJazyky_SelectedIndexChanged(object sender, EventArgs e)
    {
    	var resourceManager = new ComponentResourceManager(typeof(HlavniOknoMobile));
    	CultureInfo culture;
    	switch(cbJazyky.SelectedItem.ToString())
    	{
    		case "English":
    			culture = new CultureInfo("en");
    			break;
    		case "Czech":
    			culture = new CultureInfo("cs-CZ");
    			break;
    		default:
    			throw new NotSupportedException();
    	}
    
    	ChangeLanguage(this, resourceManager, culture);
    }
    
    TOOMIX
    TOOMIX --- ---
    VIRTUALVOID: mám

    public HlavniOknoMobile()
            {
                Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("cs-CZ");
                InitializeComponent();
            }
    VIRTUALVOID
    VIRTUALVOID --- ---
    TOOMIX: nema sa nastavovat kultura pred InitializeComponent ?
    Kliknutím sem můžete změnit nastavení reklam