• ú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 --- ---
    Nainstaloval jsem si (neprozretelne!) Reflector i s tim add-inem do Visual Studia. Bohuzel jako vedlejsi efekt mi zmizel sloupecek "user-unhandled" v Exception dialogu. To by samo o sobe tak moc nevadilo, ale zresetovalo se v tom i nejaky nastaveni a tedka je debugging temer nemoznej, protoze mi to hlasi hromadu ruznejch pochytanejch vyjimek zevnitr .netu.

    Nevite jak to dostat zpatky do puvodniho stavu? Uninstall toho reflectoru nepomaha :(.
    NECROMAN
    NECROMAN --- ---
    Podporte prosim tento muj ticket na Visual Studio uservoice, diky :)
    Make WinRT API usable in Portable Class Libraries targeting Windows 8 and WP8 – Customer Feedback for Microsoft
    http://visualstudio.uservoice.com/...ions/4443287-make-winrt-api-usable-in-portable-class-libraries-
    GOSHEWAN
    GOSHEWAN --- ---
    JACHYMKO: Problem je v tom, ze volani te DLL bezi v Task.Factory.StartNew(...). Kdyz to pustim normalne tak odchytavani funguje komplet... Tusis co s tim?

    Zacina se rysovat moznost zmeny te DLL (ze by komplet report vracela z volani metody), ale zatim na to nemuzu spolehat.
    NECROMAN
    NECROMAN --- ---
    Microsoft vcera uvolnil Windows 8.1 RTM na MSDN/TechNetu a Visual Studio 2013 RC ke stazeni:
    Download Windows 8.1 RTM, Visual Studio 2013 RC and Windows Server 2012 R2 RTM Today - Steve "Guggs" Guggenheimer's blog - Site Home - MSDN Blogs
    http://blogs.msdn.com/...ows-8-1-rtm-visual-studio-2013-rc-and-windows-server-2012-r2-rtm-today.aspx
    Announcing the Visual Studio 2013 Release Candidate - Somasegar's blog - Site Home - MSDN Blogs
    http://blogs.msdn.com/...archive/2013/09/09/announcing-the-visual-studio-2013-release-candidate.aspx
    GOSHEWAN
    GOSHEWAN --- ---
    TENCOKACISTROMY: Tak presne tohle mam udelane a nejede to. Muze byt problem ve vlaknech?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    GOSHEWAN: Takhle se na trace pripojuju ja a jede mi to v pohode.
    GOSHEWAN
    GOSHEWAN --- ---
    TENCOKACISTROMY: Fungovalo by tohle? I.e. zachytit to listenerem, presmerovat na Console.Out a to pak presmerovat uplne jinam...
    var listener = new TextWriterTraceListener(Console.Out);

    Trace.Listeners.Add(listener);
    Debug.Listeners.Add(listener);
    var serverOut = new NamedPipeServerStream("pipeOut", PipeDirection.InOut, 10, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
    SetStdHandle(StdOutHandle, serverOut.SafePipeHandle.DangerousGetHandle());
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    GOSHEWAN: Neni to pres trace? TraceListener
    GOSHEWAN
    GOSHEWAN --- ---
    Opet resim redirect vystupu z unmanaged DLL. Jedna se o Matlab Compiler DLL (matlab kod obaleny v Ccku).

    Mam presmerovany STDOUT a STDERR, ovsem ta mrcha stale neco vypisuje do immediate window... Jak to muzu odchytit?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Lepsi to mas takhle:
    DeleteBookmarks(IEnumerable<Bookmark> items);
    DeleteBookmarks(params Bookmark[] items);
    
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: ToArray() :)
    zas tak velke kolekce nevedu, ze by tu byl vykonnostni problem.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Blby je, ze pak vsechno musis prevadet na pole.
    NECROMAN
    NECROMAN --- ---
    Dalsi noob postreh, casto resim, zda implementovat dve servisni metody typu
    DeleteBookmark(Bookmark b) a DeleteBookmarks(ICollection<Bookmarks> bs)
    nebo jen tu druhou.

    Oboje to efektivne vyresi jedina metoda pomoci params :)
    DeleteBookmarks(params Bookmarks[] bs)
    NECROMAN
    NECROMAN --- ---
    MORMEGIL: Y-combinator, no to uz je vyssi divci :)
    MORMEGIL
    MORMEGIL --- ---
    NECROMAN: Tohle ještě tak krásné není. Krásné to bude, až se podaří zbavit se té lokální proměnné (jinými slovy, aby to přežilo, když o řádek níž uděláš handler = null). ;-) Pro inspiraci ke skutečné kráse viz třeba Anonymous Recursion in C#.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: to nekdo dela jinak :)?
    NECROMAN
    NECROMAN --- ---
    Nasel jsem krasne reseni problemu, jak v C# odebrat anonymni event handler - v samotnem event handleru budu mit odkaz sam na sebe pro unsubscribe :)
    EventHandler handler = null;
    handler = (s, e) => {
        callback(e.Result);
        _client.AddMemberToTeamCompleted -= handler;        
    };
    _client.AddMemberToTeamCompleted += handler;
    GOSHEWAN
    GOSHEWAN --- ---
    JACHYMKO: Diky! Ma to nejaka omezeni na ktera bych mel pamatovat? Bohuzel jsem winapi dost nepoznamenany...

    Ta DLL dela nejake celkem rychle vypocty, ale ze zvedavosti - udelat to nejak event-based asi nejde, co? I.e. abych mohl hned reagovat na nejakou zpravu (coz nyni nastesti nepotrebuju).
    GOSHEWAN
    GOSHEWAN --- ---
    Resili jste nekdo nekdy odchyceni zapisu do stdout pri P/Invoke do unmanaged (c++) DLL? Jak?

    Mam DLL, ktera zapisuje hromadu veci na stdout/stderr. Nemuzu ji menit a potrebuji logovat jeji vystupy do eventlogu. Jak na to? Google nasel relativne dost ruznorode pristupy, ovsem ani jeden se mi nepodarilo dotahnout do uspesneho konce...

    Napr. presmerovani stdout pre handle do souboru funguje, ale rad bych se tomu vyhnul, protoze by to jinak znamenalo konstantni sken toho souboru (nebo ne?).
    TOOMIX
    TOOMIX --- ---
    Problém vyřešen...support mi odpověděl to, co už dávno vím, že mám posouvat range. Nevěděl jsem ale, jak získat přístup properties toho grafu v ChartControlu, už jsem na to přišel, tak kdyby se to někomu hodilo

    ((DevExpress.XtraCharts.SwiftPlotDiagram)grafFlow.Diagram).AxisX.Range.MaxValue = maxFlow;
    ((DevExpress.XtraCharts.SwiftPlotDiagram)grafFlow.Diagram).AxisX.Range.MinValue = minFlow;
    Kliknutím sem můžete změnit nastavení reklam